下面是一个简单的加法函数模板:
其中template <typename T>
和下面的函数体之间不可以有别的语句。
template <typename T>
T function(T a, T b)
{
return a + b;
}
int main()
{
string a = "abc", b = "def";
int c = 1, d = 2;
double e = 3.3, f = 4.4;
cout << function(a, b) << endl;
cout << function(c, d) << endl;
cout << function(e, f) << endl;
return 0;
}
/*
abcdef
3
7.7
*/
函数模板允许有多个参数类型:
template <typename T, typename T2>
T function(T a, T2 b)
{
return a + b;
}
int main()
{
int a = 1, b = 2;
double c = 3.3;
cout << function(a, b) << endl;
cout << function(a, c) << endl;
return 0;
}
/*
3
4
*/