C++ 函数模板
故名思意:函数的模板,其是一个对函数功能的描述,当它具体执行时,将根据传递的实参决定功能;
1、 函数模板定义如下:
template: 声明开始进行泛型编程
typename:声明泛指类型
template<参数表>
//参数表定义<typename T> 或 <typename T1, typename T2>
//参数表定义<class T> 或 <class T1, class T2>
返回类型 函数名(形参)
{
...
}
2、举例(多参数):
template<typename T>
T Add(T a,T b)
{
return (a + b);
}
或
template<class T>
T Add(T a,T b)
{
return (a + b);
}
结果:
3、其它:
1)函数模板可以重载;
2)C++编译器优先考虑普通函数;
3)如果函数模板可以产生一个更好的匹配,那么就选择函数模板;
4)可以通过空模板实参列表<>限定编译器只匹配函数模板;