template <typename T>
```函数声明或定义
交换两个数据的函数模板
void func(T& a, T& b)
{
T temp;
temp = a;
a = b;
b = temp;
}
普通函数和模板函数重复,可通过空模板参数列表强制调用函数模板
void myPrint(int a, int b)
void myPrint(T &a, T&b)
myPrint<>(a, b);
此时调用的是模板函数
注意类模板无法进行自动类型推导:
Studnet s("张三",21); //错误
Studnet <string ,int> s("张三",21); //正确
类模板可以有默认参数
template<class typename, class typeage =int >
指定年龄默认类型为int
Studnet <string > s("李四",21) //正确不会报错