所谓类模板,实际上是建立一个通用类,其数据成员、成员函数的返回值类型和形参类型不具体指定,用一个虚拟的类型来代表。使用类模板定义对象时,系统会实参的类型来取代类模板中虚拟类型从而实现了不同类的功能。

    定义一个类模板与定义函数模板的格式类似,必须以关键字template开始,后面是尖括号括起来的模板参数,然后是类名,其格式如下:

    1. template <typename 类型参数>
    2. class 类名{
    3. 类成员声明
    4. };
    5. 或者
    6. template <class 类型参数>
    7. class 类名{
    8. 类成员声明
    9. };
    • 在类声明中,欲采用通用数据类型的数据成员、成员函数的参数或返回类型前面需要加上类型参数。
    • 在每一个类模板定义之前,都需要在前面加上模板声明,如template。并且,类模板在使用时,必须在模板类名字后面缀上<类型参数> ,如Stack
    • 如同模板函数一样,模板类也可以有多个类型参数。