引入案例
#includeusing namespace std; //函数模板 //模板的作用:类型参数化,将类型作为参数在函数间传递 //模板注意事项: //1.自动类型推导,必须推导出一致的数据类型T才可以使用 // 即T不可能同时既是int又是char,自我矛盾 //2.模板必须要确认出T的数据类型,才可以使用 template //声明一个模板,告诉编译器后面代码中紧跟的T不要报错 //T 是一个通用的数据类型 //紧跟模板后的函数将百分百调用模板,如果此时,模板函数未能自动推导出函数类型将会报错,修正方式,给其一个强制类型 //重点:必须给T一个交待,不管是否使用了T //void func() { // cout << "func 调用" << endl; //} void mySwap(T& a, T& b) { T temp = a; a = b; b = temp; } void test01() { int a = 10; int b = 20; //利用函数模板交换 //两种方式使用函数模板 //1.自动类型推导 mySwap(a, b); //2.显示指定类型 mySwap (a, b); cout << "a = " << a << endl; cout << "b = " << b << endl; //关于第二个注意事项的相关: //func(); 如果函数func()在模板之下,是无法调用的 //必须更改为: //func (); } int main() { test01(); }



