Contrôle d'accès aux membres

De RAD Studio
Aller à : navigation, rechercher

Remonter à Portée des membres - Index

Les membres d'une classe acquièrent leurs attributs d'accès soit par défaut (selon la clé de classe et le lieu de la déclaration) ou grâce à l'un des trois spécificateurs d'accès : public, private et protected. La signification de ces attributs est la suivante :

  • public : membre pouvant être utilisé par toutes les fonctions.
  • private : le membre n'est utilisable que par des fonctions membres et amies de la classe dans laquelle il est déclaré.
  • protected : même chose que private. En outre, le membre n'est utilisable que par des fonctions membres et amies des classes dérivées de la classe déclarée, et uniquement dans les objets de type dérivé. Les classes dérivées sont expliquées dans Accès aux classes de base et dérivées.

Remarque : Les déclarations de fonctions amies ne sont pas affectées par les spécificateurs d'accès. Voir Amies de classes pour plus d'informations.

Les membres d'une classe sont à accès private par défaut, de sorte que vous devez explicitement mentionner les spécificateurs public ou protected pour changer cette valeur.

Les membres d'une structure struct sont à accès public par défaut, mais vous pouvez redéfinir l'accès à la structure en appliquant le spécificateur private ou protected.

Les membres d'une union sont public par défaut, et ne sont pas modifiables. De ce fait, les trois spécificateurs d'accès sont illégaux dans les membres d'une union.

Un modificateur d'accès implicite ou de redéfinition reste applicable pour toutes les déclarations de membres le suivant, tant qu'un autre modificateur n'apparaît pas. Par exemple :

class X {
   int i;    // X::i is private by default
   char ch;  // so is X::ch
public:
   int j;    // next two are public
   int k;
protected:
   int l;    // X::l is protected
};
struct Y {
   int i;    // Y::i is public by default
private:
   int j;    // Y::j is private
public:
   int k;    // Y::k is public
};
union Z {
   int i;    // public by default; no other choice
   double d;
};

Remarque : Les spécificateurs d'accès peuvent être répertoriés et groupés dans l'ordre voulu. Vous pourrez éviter la saisie en déclarant tous les membres à accès privé ensemble, etc.

Voir aussi