1. 说明
当函数处理功能相似,函数名相同,但是参数个数或者类型有区别,我们知道实现的方式是依靠函数重载(overload)。但是如果仅函数参数或返回数的类型不同,我们想到靠函数模板解决这个问题,不仅节省内存,而且不用复杂声明多个函数。
函数模板是指构建一个可以“兼容”所有类型,对于不同类型实现统一的处理的函数。
2. 格式
2.1 定义函数模板格式:
template <参数化函数类型列表>
返回类型 函数名(<模板参数表>)
{
函数体;
}
2.2 参数化函数类型列表格式:
<typename T1,typename T2,...>
或者:
<class T1,class T2,...>
class容易与类定义混淆,所以一般推荐使用typename关键字。
3.举例
template <typename T>
T const& MaxCom(T const& a,T const& b)
{
return a>b ? a:b;
}
调用函数:
int nRel = MaxCom(6 , 7);
或者显示实例化参数模板的类型:
double nRel = MaxCom<double>(6 , 7.5);
个人学习记录,由于能力和时间有限,如果有错误望读者纠正,谢谢!
转载请注明出处:CSDN 无鞋童鞋