普通函数与函数模板区别:
普通函数调用时可以发生自动类型转换(隐式类型转换)
函数模板调用时,如果利用自动类型推导,不会发生隐式类型转换
如果利用显示指定类型的方式,也尅发生隐式类型转换
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
//普通函数调用可以发生隐式类型转换
int myAdd(int a,int b)
{
return a+ b;
}
//函数模板 用自动类型推导,不可以发生隐式类型转换
template<class T>
T myAdd01(T a,T b)
{
return a + b;
}
//函数模板 用显示指定类型,可以发生隐式类型转换
void test01()
{
int a = 10;
int b = 20;
char c = 'c'; //a-97
cout << myAdd(a, c) << endl;
//自动类型推导
//cout << myAdd01(a, c) << endl;
//显示指定类型
cout<<myAdd01<int>(a,c)<<endl;
}
int main()
{
test01();
system("pause");
return 0;
}