#include<iostream>
#include<string>
using namespace std;
//普通函数与函数模板的区别
//1、普通函数调用可以发生隐式类型转换
//2、函数模板 用自动类型推导,不可以发生隐式类型转换
//3、函数模板 用显示指定类型,可以发生隐式类型转换
//普通函数
int myAdd(int a, int b)
{
return a + b;
}
//函数模板
template<class T>
T myAdd2(T a, T b)
{
return a + b;
}
void test01()
{
int a = 10;
int b = 20;
char c = 'c';//a-97 c-99
cout << myAdd(a, c) << endl;//把字符型变量转成了整型变量进行计算 10+99=109
//自动类型推导
//cout << myAdd2(a, c) << endl; //错误! 函数模板 用自动类型推导,不可以发生隐式类型转换
//显示指定类型
cout << myAdd2<int>(a, c) << endl; //函数模板 用显示指定类型,可以发生隐式类型转换
}
void test02()
{
}
int main()
{
test01();
test02();
system("pause");//按任意键继续
return 0;//关闭程序
}
05模板-普通函数与函数模板区别
最新推荐文章于 2024-10-31 18:26:46 发布