模板
模板的概念:模板就是建立一个通用的模具,大大提高复用性
c++中模板机制分为两类
函数模板
建立一个通用函数,其函数返回值类型和形参类型可以不具体定制,用一个虚拟的类型来代表
template<typename T>
//template 声明创建模板
//typename 表明其后面的符号是一种数据类型,可以用class代替
//T 通用的数据类型,名称可以替换,通常是大写字母
// 定义一个模板,告诉编译器后面这个函数中的T是通用数据类型
template<typename T>
void myswap(T a,T b) {}int main() {int a = 10, b = 20;// 使用模板的两种方式//1. 自动类型推导myswap(a, b);//2. 显示指定类型,指定告诉模板类型myswap<int>(a, b);//空模板的参数列表强制调用模板myswap<>(a, b);
}
普通函数与函数模板的调用规则
- 如果函数模板和普通模板都可以调用,优先调用普通模板
- 可以通过空模板参数列表,强制调用函数模板
- 函数模板可以发生参数重载
- 如果函数模板可以产生更好的匹配,优先调用函数模板