我创建了模板函数,它允许我用任何类型的数字、整数、双精度等来调用它......
要调用这个函数,我需要知道一个数字,为了得到这个数字,我从控制台(std::cin
)读取它。
我想知道 - 如果我必须声明变量类型才能将其传递给函数,那么使用模板的目的是什么?我的意思是,我不会问用户他想传递什么类型的数字,而且我肯定不会为所有数据类型执行 switch 循环以不同地调用函数。
如果有什么不够清楚,让我提供一些简单的例子:
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: ");
}
但是,它看起来非常难看。
这是使用这种功能的好习惯吗?
或者也许还有其他一些我不知道的很酷的方式?