一、函数模板
模板类型在函数参数列表中使用。如下示例代码:
templatevoid test(T2& a, T1& b) { cout << "T1 = " << a << endl; cout << "T2 = " << b << endl; } int main(void) { int x = 4; double y = 5.5; test(x, y); cout << "x = " << x << ", y = " << y << endl; return 0; }
二、类模板
模板类型在类中(定义类成员变量,或类成员函数的参数列表)使用。如下示例代码:
// 定义模板类 templateclass People { private: int age; public: People(){}; People(int a); void print(T x); }; // 类中成员实现 template People ::People(int a) { age = a; } template void People ::print(T x) { cout << "x = " << x << ", age = " << age << endl; } //使用模板类 int main(void) { People p1(4); People p2(4); p1.print("cplusplus"); p2.print(23); return 0; }
小细节:函数模板定义时,使用 typename 和 class 效果是一样的,视个人习惯而使用。


![[C++]函数模板和类模板 [C++]函数模板和类模板](http://www.mshxw.com/aiimages/31/429915.png)
