类模板的成员

类模板的成员就像任何类的成员一样。 它们可以是静态或非静态的数据或函数成员或者甚至是其他模板。 它们可以在模板类的内部或外部定义。 模板类的成员可引用模板参数列表中指定的未知类型,就像这些类型是有效类型名称一样;这些成员还可以引用模板参数列表中指定的未知对象值,好像这些值是常量表达式一样。

当在类声明外部定义模板化类的成员时,必须以不同于非模板化类的成员的方式来声明这些成员。 该声明前面必须有指定函数所属的模板类的语法。

template < template-argument-list > definition

备注

模板类外部的成员函数的声明符还必须指定模板参数。

template-name < template-argument-list > :: identifier

示例

// members_of_class_templates1.cpp
// compile with: /c
template <class T, int i> 
class TempClass {
   int MemberSet(T, int);
};

template <class T, int i> 
int TempClass< T, i >::MemberSet( T a, int b ) {
   if( ( b >= 0 ) && (b < i) ) {
      Tarray[b++] = a;
      return sizeof( a );
   }
   else
      return -1;
}

C++ 还允许使用嵌套模板(称为成员模板)。 成员模板可以是嵌套类模板成员函数模板

请参见

参考

类模板