函数模板的概念
函数模板代表了一个函数家族,该函数模板与类型无关,根据实参类产生特定的类型版本
函数模板格式
templateType 函数名(Type x) {}
用交换函数作为例子:
templateT Swap(T &a,T &b){ T tmp = a; a = b; b = tmp; }
当两个参数为不同类型时该怎么办呢?
templateT Add(T x1,T x2){ return x1+x2; } int main(){ //第一种方法是直接强制类型转化其中一个参数 Add((double)10,10.5); //第二种是直接将类型定义好 Add (10,10.5); }
非模板函数和其同名模板函数可以同时存在吗
答案是可以的,那么当函数调用时,调用哪一个呢?
对于非模板函数和其同名的模板函数,如果条件都相同,则调用非模板函数,如果模板函数可以产生一个更好的匹配函数,则调用模板函数
其实类模板和函数模板是没有很大差别的
templateclass Test {};
类模板中的函数放在类外进行定义时,需要加模板参数列表



