需要多个不同类型使用同一种算法的函数时,可使用模板。
函数模板
template <typename AnyType>
void Swap(AnyType &a,AnyType &b)
{
AnyType temp;
temp=a;
a=b;
b=temp;
}
template和typename是声明的关键字。声明参数类型时,可以使用typename或class.
类模板
- 声明类模板时要增加一行
template <class 类型参数名>
template是声明类模板时的关键字。 - 用类模板定义对象形式
类模板名 <实际类型名> 对象名;
类模板名 <实际类型名> 对象名(实参列表);
如
Compare<int> cmpl;
Compare<int> cmpl(3,7);
- 如果在类模板外定义成员函数,应写成类模板形式:
template<class 虚拟类型参数>
函数类型 类模板名<虚拟类型参数>::成员函数名(函数形参列表)
{...}
网友评论