函数模板注意事项(2)
注意事项:
1.自动类型推导,必须推导出一致的数据类型T,才可以使用
2.模板必须要确定出T的数据类型,才可以使用
1 #include <iostream> 2 using namespace std; 3 4 //函数模板注意事项 5 //1.自动类型推导,必须推导出一致的数据类型T,才可以使用 6 template<class T> 7 void mySwap(T &a, T &b) 8 { 9 T temp = a; 10 a = b; 11 b = temp; 12 } 13 14 void test_01(void) 15 { 16 int a = 10; 17 int b = 20; 18 char c = 'c'; 19 20 mySwap(a, b);//正确,a,b数据类型一致 21 //mySwap(a, c);//错误,a,c数据类型不一致 22 23 cout << "a=" << a << endl; 24 cout << "b=" << b << endl; 25 26 } 27 28 //2.模板必须要指定出T的数据类型,才可以使用 29 template<class T> 30 void func() 31 { 32 cout << "func调用" << endl; 33 } 34 35 void test_02(void) 36 { 37 func<int>();//无法自动推导时,需要指定T的数据类型,才可以使用 38 } 39 40 int main(void) 41 { 42 test_01(); 43 test_02(); 44 45 system("pause"); 46 return 0; 47 }

浙公网安备 33010602011771号