C++函数模板与类模板(template)

函数模板

函数模板可以用来创建一个通用功能的函数,以支持多种不同形参,进一步简化重载函数的函数体设计。

声明方法:

template <typename  标识符>
函数声明

绝对值函数模板实例:

编译器从调用abs()时实参的类型,推导出函数模板的类型参数。例如,对于调用表达式abs(n),由于实参n为int型,所以推导出模板中类型参数T为int。

当类型参数的含义确定后,编译器将以函数模板为样板,生成一个函数:
int abs(int x)
{    return x<0?-x:x;  }

类模板

使用类模板使用户可以为类声明一种模式,使得类中的某些数据成员、某些成员函数的参数、某些成员函数的返回值,能取任意类型(包括基本类型的和用户自定义类型)

template <模板参数表>
class 类名
{类成员声明}

如果需要在类模板以外定义其成员函数,则要采用以下的形式:

template <模板参数表>
类型名 类名<T>::函数名(参数表)

实例:

 

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注