C++函数模板

137 阅读1分钟

下面是一个简单的加法函数模板:
其中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
*/

参考资料

  1. C++模板:函数模板和模板函数
  2. C++ Template 基础篇(一):函数模板