Partager via


Syntaxe de déclaration de membre de classe

Les données membres de classe et les membres de fonctions sont généralement déclarés après les règles pour les déclarations.Il s'agit, dans cet ordre :

  • spécificateurs de déclaration.Dans les classes, il permet les spécificateurs statique de classe de stockage et mutable pour les données membres.Il permet les cv-qualificateurs const et volatile pour les membres de données et de fonction.Il permet les spécificateurs de déclaration friend, statique, virtuel et inline pour les fonctions, bien qu' friend pointe vers une fonction non - membre.

  • déclarateurs sans initialiseurs.Dans le cas de les fonctions virtuelles, le spécificateur pure du formulaire = 0 est utilisé lorsque les déclarateurs de fonction pour spécifier une fonction virtuelle pure (une fonction virtuelle sans implémentation dans cette classe).

  • éventuellement, champs de bits.Afficher les champs de bits.

OR

  • définitions de fonction.La définition d'une fonction peut être incluse dans la classe.Si une fonction membre est ainsi définie, elle est automatiquement considérée comme inline.

OR

Les données membres ne peuvent pas être déclarées comme auto, extern, ou classe de stockage de registre .Ils peuvent, toutefois, être déclarés comme ayant une classe de stockage de statique .

Lorsque vous déclarez une classe de friend dans une liste de membres, vous pouvez omettre la liste membre de déclarateur.Pour plus d'informations sur les fonctions friend, consultez spécificateur friend et le fonctions friend.même si un nom de classe n'a pas été introduit, il peut être utilisé dans une déclaration d' friend .Cette déclaration d' friend présente le nom.Toutefois, dans les déclarations de membre pour de telles classes, la syntaxe utilisation du spécificateur de type doit être utilisée, comme indiqué dans l'exemple suivant :

// class_member_declaration_syntax.cpp
// compile with: /c
struct HasFriends {
   friend class NotDeclaredYet;
};

Dans l'exemple précédent, aucune liste membre de déclarateur après la déclaration de classe.Étant donné que la déclaration pour NotDeclaredYet n'a pas encore été traitée, le formulaire élaboré de spécificateur de type est utilisé : class NotDeclaredYet.Un type qui a été déclaré peut être spécifié dans une déclaration de membre d' friend à l'aide d'un spécificateur de type normal :

// class_member_declaration_syntax2.cpp
// compile with: /c
struct AlreadyDeclared {};

struct HasFriends {
   friend AlreadyDeclared;
};

Le spécificateur pure (montré dans l'exemple suivant) indique qu'aucune implémentation n'est fournie pour la fonction virtuelle est déclarée.Par conséquent, le spécificateur pure peut être spécifié uniquement pour les fonctions virtuelles.Considérez cet exemple :

// class_member_declaration_syntax3.cpp
// compile with: /c
class StrBase {   // Base class for strings.
public:
   virtual int IsLessThan( StrBase& ) = 0;
   virtual int IsEqualTo( StrBase& ) = 0;
   virtual StrBase& CopyOf( StrBase& ) = 0;
};

Le code précédent déclare une classe de base abstraite - c. autrement dit., une classe destinée à être utilisée uniquement comme classe de base pour les classes plus spécifiques.De telles classes de base peuvent appliquer un protocole particulier, ou l'ensemble de fonctionnalités, en déclarant une ou plusieurs fonctions virtuelles comme fonctions virtuelles « pures », à l'aide de le spécificateur pure.

Les classes qui héritent de la classe d' StrBase doivent fournir des implémentations pour les fonctions virtuelles pures ; sinon, elles, et, sont considérées comme des classes de base abstraite.

Les classes de base abstraites ne peuvent pas être utilisées pour déclarer des objets.par exemple, avant qu'un objet d'un type hérité d' StrBase puisse être déclaré, les fonctions IsLessThan, IsEqualTo, et CopyOf doivent être implémentées.(Pour plus d'informations sur les classes de base abstraites, consultez classes abstraites.)

Voir aussi

Référence

Membres de classe