一.函数模板
在我们写C语言的时候如果要进行交换运算,对于不同类型的数字要写对应不同的函数
但对于C++来说,多了模板后就可以只用写一个函数,而剩下的由编译器自己判断。
而编译器根据不同传参类型会调用不同的函数
而对于
template<typename T>
T swap(T& a,T&b){}
可以选择的使用类型如 swap<float>(a,b)
编译器调用符合如下
// 1、都有的情况,优先匹配普通函数+参数类型匹配(成品+口味对)
// 2、没有普通函数,优先函数模版+参数类型匹配(半成品+口味对)
// 3、只有一个,类型转换一下也能用,也可以匹配调用(口味不对,将就一下也行)
二.类模板
对于不同类型的参数可以自己选择了
可以再也不需要用#define int Typedata
类名<类型>类名变量
三.注意事项
在对模板类型的函数尽量不要定义和声明分离,负责的话会加长编译时长