模板是 C++ 支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。

模板是一种对类型进行参数化的工具;

通常有两种形式:函数模板和类模板;

函数模板针对仅参数类型不同的函数;

类模板针对仅数据成员和成员函数类型不同的类。

使用模板的目的就是能够让程序员编写与类型无关的代码。

注意:模板的声明或定义只能在全局,命名空间或类范围内进行。即不能在局部范围,函数内进行,比如不能在 main() 函数中声明或定义一个模板。

其中,type 是函数所使用的数据类型的占位符名称。这个名称可以在函数定义中使用。

template

不仅可以定义函数模板,C++ 还允许定义类模板。类模板又称泛型类(Generic class)。

其中,type 是占位符类型名称,可以在类被范例化的时候进行指定。可以使用一个逗号分隔的列表来定义多个泛型数据类型。