区别:
-
普通函数调用时可以发生自动类型转换(隐式类型转换)
-
函数模板调用时,如果利用自动类型推导,不会发生隐式类型转换
-
如果利用显示指定类型的方式,可以发生隐式类型转换
#include<iostream> using namespace std; //普通函数 int myAdd01(int a, int b) { return a + b; } //模板函数 template<typename T> T myAdd02(T a, T b) { return a + b; } void test01() { int a = 10; int b = 20; char c = 'a'; cout << myAdd01(a, b) << endl; cout << myAdd01(a, c) << endl;//'a'的ASCII码为97 //cout << myAdd02(a, c) << endl;//报错!!! //使用自动类型推导时,不会发生隐式类型转换 cout << myAdd02<int>(a, c) << endl; //显示类型转换,将c转换