在软件开发过程中,经常会遇到功能相似的代码,除了参数类型不同以外,业务实现都是一样的。这种情况下使用函数模板会非常方便。
函数模板是严格的参数类型匹配。 普通函数的调用优先级高于函数模板,如果想要有限调用函数模板,请显式调用。
- 定义类模板
template <class T1> // typename和class 功能一样,也可以定义多个class
void SwapParam(T1 &a, T1 &b)
{
T1 temp;
temp = a;
a = b;
b = temp;
}
- 隐式调用
int x = 10;
int y = 20;
//隐式调用,不需要指明类型,系统会默认转换
qDebug() << "x = " << x << ", y = " << y;
SwapParam(x,y);
qDebug() << "x = " << x << ", y = " << y;
- 显式调用
//显式调用,指明类型,如果有多个类型,就用逗号隔开
SwapParam<int>(x,y);
qDebug() << "x = " << x << ", y = " << y;