Udostępnij za pośrednictwem


Elementy członkowskie szablonów klas

Członkowie klasy szablonu są tym samym co członkowie klasy.Mogą być statyczne lub niestatyczne, danymi lub funkcjami członków lub nawet innymi szablonami.Mogą być definiowane wewnątrz szablonu klasy lub poza nim.Członkowie szablonu klasy mogą dotyczyć nieznanych typów wymienionych na liście argumentów szablonu tak, jakby były one prawidłową nazwą typu i mogą odwoływać się do wartości nieznanego obiektu określonego w liście argumentów szablonu tak, jakby były stałymi wyrażeniami.

Definiując członków opartych na szablonach klas poza deklaracją klasy trzeba je zadeklarowanć inaczej niż w przypadku klasy bez szablonu.Deklaracja musi być poprzedzona składnią określającą klasę szablonu, której funkcja jest członkiem.

template < template-argument-list > definition

Uwagi

W deklaracji dla funkcji członka poza klasą szablonu należy także określić argumenty szablonu.

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

Przykład

// 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++ pozwala również na zagnieżdżone szablony, określane jako szablony członków.Szablony członków mogą być szablonami zagnieżdżonych klas lub szablonami funkcji członkowskich.

Zobacz też

Informacje

Szablony klas