Contrôle d'accès aux membres
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 est private par défaut char ch; // de même pour X::ch public: int j; // les deux suivants sont public int k; protected: int l; // X::l est protected }; struct Y { int i; // Y::i est public par défaut private: int j; // Y::j est private public: int k; // Y::k est public }; union Z { int i; // public par défaut ; pas d'autre choix 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
- Classes C++
- Noms de classes
- Types de classes
- Portée du nom de classe
- Objets de classes
- Liste des membres de classe
- Fonctions membres
- Mot clé this - Index
- Membres statiques
- Fonctions inline
- Portée des membres
- Déclarations de types imbriqués
- Accès aux classes de base et dérivées
- Classes de base virtuelles
- Amies de classes