我试图理解下面的示例代码。我知道我们可以明确指定数据类型,但不确定“int, double”和“int, int”是什么意思。以及为什么我们用这种方式编写函数模板而不是 T Tripleit (T Val) { T temp = val * 3; }? 提前致谢。
#include <iostream>
using namespace std;
// why do we write this way instead of T tripleit (T Val) { T temp = val * 3; }?
template <class T, class U>
T tripleit (U val)
{
T temp = val * 3;
}
int main()
{
int a=5;
double d=3.3;
cout << "Explicit int; int argument: " << tripleit<int>(a) << endl;
cout << "Explicit int; double argument: " << tripleit<int>(d) << endl;
// what does <int, double> and <int, int> mean?
cout << "Explicit int, double; double argument: " << tripleit<int, double>(d) << endl;
cout << "Explicit int, int; double argument: " << tripleit<int, int>(d) << endl;
return 0;
}
顺便说一句,输出是:
显式整数;整数参数:15
显式整数;双参数:9
显式 int,双精度;双参数:9
显式整数,整数;双参数:9