)
{
int c = a;
a = b;
b = c;
}
但是这个函数仅仅只能支持int类型,如果我们想实现交换double,float,string等等时,就还需要从新去构造...所以C++引入了泛型编程概念
在C++里,通过函数模板和类模板来实现泛型编程(类模板在下章将讲解)
函数模板
一种特殊的函数,可通过不同类型进行调用
函数模板是C++中重要的代码复用方式
通过template...,则必须需要指定返回值模板类型.因为编译器无法推导出返回值类型
可以从左向右部分指定类型参数
?...函数模板可以像普通函数一样被重载
函数模板不接受隐式转换
当有函数模板,以及普通重载函数时,编译器会优先考虑普通函数
如果普通函数的参数无法匹配,编译器会尝试进行隐式转换,若转换成功,便调用普通函数...cout<<"1.5:2.0="<<Max(1.5,2.0)<<endl;
//由于两个参数默认都是<em>double</em>,所以<em>无法</em>隐式转换,则调用<em>函数</em><em>模板</em> Max(<em>double</em>