函数模板注意事项(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 }

 

posted @ 2020-04-26 17:21  坦率  阅读(262)  评论(0)    收藏  举报