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);
//结论:
//函数模板不允许自动类型转换,必须严格匹配类型
//普通函数可以进行自动类型转换
}
本文探讨了C++中函数模板与普通函数的主要区别,重点在于类型转换机制的不同。函数模板不允许自动类型转换,而普通函数则可以进行隐式的类型转换。

被折叠的 条评论
为什么被折叠?



