Partager via


Membres pour les modèles de classe

Les membres des modèles de classe sont comme les membres d'une classe. Ils peuvent être des membres statiques ou non statiques, de données ou de fonctions, ou même d'autres modèles. Ils peuvent être définis dans la classe de modèle ou en dehors de celle-ci. Les membres d'une classe de modèles peuvent faire référence aux types inconnus spécifiés dans la liste d'arguments template comme s'il s'agissait de noms de type valides, et ils peuvent faire référence aux valeurs inconnues d'objet spécifiées dans la liste d'arguments template comme s'il s'agissait d'expressions constantes.

Lorsque les membres des classes basées sur un modèle sont définis hors de la déclaration de classe, ils doivent être déclarés différemment de ceux des classes non basées sur des modèles. La déclaration doit être précédée par la syntaxe spécifiant la classe de modèle dont la fonction est membre.

template < template-argument-list > definition

Notes

Le déclarateur pour une fonction membre à l'extérieur de la classe de modèles doit également spécifier des arguments template.

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

Exemple

// 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++ autorise également les modèles imbriqués, appelés modèles membres. Les modèles membres peuvent être des modèles de classe imbriqués ou des modèles de fonction membre.

Voir aussi

Référence

Modèles de classe