函数模板基础
建立一个通用的函数,将函数返回值类型和形参类型不具体指定,用一个虚拟的类型来表示
template<typename T>
函数的声明和定义
template ---声明创建模板
typename ---表明其后面的符号是一种数据类型,可以用class代替
T --- 通用的数据类型,名称可以替换
测试例子:
template<class T>
void mySwap(T& a, T&b)
{
T tmp = a;
a = b;
b = tmp;
}
void func()
{
int a = 1, b = 2;
mySwap(a, b); // 可直接推导出类型
mySwap<int>(a, b); // 指定数据类型
}
模板注意事项:
一致的数据类型才可以使用
数据类型必须可以推导出才可以使用
自动类型推导
显示指定类型