普通函数和函数模板的区别

1.普通函数会发生隐式类型转换
2.函数模板自动类型推导不发生隐式类型转换
3.函数模板显示指定类型发生隐式类型转换

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 template<class T>
 5 T add(T a,T b)
 6 {
 7     return a + b;
 8 }
 9 
10 int padd(int a,int b)
11 {
12     return a + b;
13 }
14 
15 //普通函数会发生隐式类型转换
16 //函数模板自动类型推导不发生隐式类型转换
17 //函数模板显示指定类型发生隐式类型转换
18 int main()
19 {
20     int a = 1,b = 2;
21     char c = 'a';
22     cout << padd(a , b) << endl;
23     cout << padd(a , c) << endl;
24     cout << add(a,b) << endl;
25     //cout << add(a,c) << endl;//函数模板自动类型推导不发生隐式类型转换
26 
27     cout << add<int>(a,b) << endl;
28     cout << add<int>(a,c) << endl;
29 }

猜你喜欢

转载自www.cnblogs.com/mch5201314/p/11673573.html