1.普通函数调用时可以发生自动类型转换(隐式类型转换);
2.函数模板调用时,如果利用类型自动推导,不会发生隐式类型转换;
3.如果利用显示指定类的方式,可以发生隐式类型转换;
#include<iostream>
using namespace std;
int myAdd(int a, int b) {
return a + b;
}
template<class T>
T myAdd2(T a, T b) {
return a + b;
}
void test() {
int a = 10;
int b = 20;
char c = 'c';
//这里进行了隐式的转换,将char转换成了int
cout << myAdd(a, c) << endl;
//这里使用c作为实参就会报错
//cout << myAdd2(a, c) << endl;
//这种情况下就不会报错,会进行隐式转换
cout << myAdd2<int>(a, c) << endl;
}
int main() {
test();
system("pause");
return 0;
}