首页 > 其他 > 详细

普通函数与函数模板的区别(4)

时间:2020-04-26 19:52:22      阅读:63      评论:0      收藏:0      [点我收藏+]

普通函数与函数模板的区别:

1.普通函数调用时可以发生自动类型转换(隐式类型转换)

2.函数模板调用时,如果利用自动类型推导,不会发生隐式类型转换

3.函数模板调用时,如果利用显示指定类型,可以发生隐式类型转换

 1 #include <iostream>
 2 using namespace std;
 3 
 4 //普通函数与函数模板的区别
 5 
 6 //1.普通函数调用可以发生隐式类型转换
 7 int myAdd1(int a, int b)
 8 {
 9     return a + b;
10 }
11 
12 //2.函数模板
13 template<class T>
14 T myAdd2(T a,T b)
15 {
16     return a + b;
17 }
18 
19 void test_01(void)
20 {
21     int a = 10;
22     int b = 20;
23     char c = c;
24     
25     //cout << myAdd1(a, c) << endl;//编译器自动地把‘c‘转换成ASCII码,a-97,c-99
26 
27     //自动类型推导    不会发生隐式转换
28     //cout << myAdd2(a, c) << endl;//报错
29 
30     //显示指定类型    会发生隐式转换
31     cout << myAdd2<int>(a, c) << endl;
32 }
33 
34 int main(void)
35 {
36     test_01();
37 
38     system("pause");
39     return 0;
40 }

建议:调用函数模板时,建议使用显示指定类型

普通函数与函数模板的区别(4)

原文:https://www.cnblogs.com/huanian/p/12781614.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!