c++模板--函数模板和普通函数的区别
1 函数模板和普通函数的区别
- 函数模板不允许自动类型转化
- 普通函数能够自动进行类型转化
#include <iostream>
using namespace std;
//函数模板
template<typename T>
T MyPlus(T a, T b)
{
T ret = a + b;
return ret;
}
//普通函数
int MyPlus(int a,char b)
{
int ret = a + b;
return ret;
}
int main()
{
int a = 10;
char b = 'a';
//调用函数模板,严格匹配类型
MyPlus(a, a);
MyPlus(b, b);
//调用普通函数
MyPlus(a, b);
//调用普通函数 普通函数可以隐式类型转换
MyPlus(b, a);
//结论:
//函数模板不允许自动类型转换,必须严格匹配类型
//普通函数可以进行自动类型转换
}