与函数模板类似,类也可以被一种或多种类型参数化,这就是所谓的类模板。类模板好比是一个模具,当需要类中包含int类型成员变量的时候,应用该模具生成包含int类型成员的类,如果需要的是double类型成员变量,就用该模板生成包含double类型成员的类。
类模板应用广泛,最常见的的应用就是定义容器类,类模板提供的工具可以定义能存储任意类型的对象容器。参数可以用来指定容器要存储的对象的类型。
定义类模板:
template <模板参数列表>class
<类名>
{
//类模板实现
}
类模板的参数包含类型参数和非类型参数。
类型参数就是使用typename或者class来修饰的类型。( 为区分类,建议使用typename)
非类型参数则是代表一个具体类型参数,如int a,double b.