任意の型の数値、int、double などで呼び出すことができるテンプレート関数を作成しました...
この関数を呼び出すには、数値を知る必要があり、この数値を取得するには、コンソールから読み取ります ( std::cin
)。
とにかく関数に渡すために変数の型を宣言する必要がある場合、テンプレートを使用する目的は何ですか? つまり、渡したい数値のタイプをユーザーに尋ねることはありません。また、関数を異なる方法で呼び出すために、すべてのデータ タイプに対してスイッチ ループを実行することもありません。
何かが十分に明確でない場合は、簡単な例を挙げてみましょう。
template <typename T>
T sum(T a, T b)
{
return a + b;
}
int main()
{
using namespace std;
int a, b; // here, this line
cout << "Provide first number: ";
cin >> a;
cout << "Provide second number: ";
cin >> b;
sum(a, b);
}
loadVariable()
のような別のテンプレート関数を作成し、ロードされた変数を次のように返すことを考えていました。
template <typename T>
T loadVariable(string text)
{
T var = new T;
cout << text;
cin >> var;
return var;
}
そして、次のようなことをしてください:
int main()
{
using namespace std;
sum(loadVariable("Provide first number: "), loadVariable("Provide second number: ");
}
ただし見た目がかなり悪いです。
この種の関数を使用することは良い習慣ですか?
それとも、私が気付いていない他のクールな方法があるのでしょうか?