Recommandé, 2024

Choix De L'Éditeur

Différence entre privé et protégé en C ++

Trois types de protection d'accès définis dans le langage de programmation C ++ permettent de masquer les données. La dissimulation de données est une partie essentielle de la programmation orientée objet. Les mots clés private et protected offrent le niveau de protection d'accès nécessaire pour masquer les données et fonctionner au sein d'une classe. Les membres privés ne peuvent pas être hérités, alors que le membre protégé peut l'être, mais dans une plage limitée. Ces spécificateurs indiquent la visibilité des membres lorsque private est plus restrictif que protégé.

Tableau de comparaison

Base de comparaisonPrivéProtégé
Héritage de la propriété à la classe dérivée
La classe dérivée ne peut pas accéder aux membres privés de la classe de base.La classe dérivée peut accéder aux membres protégés par la classe de base.
Accessibilité
Les membres privés de la classe sont inaccessibles hors de la portée de la classe.Les membres protégés de la classe sont inaccessibles hors de la portée de la classe, à l'exception de la classe dérivée immédiatement.
Accessible depuis sa propre classeOuiOui
Accessible à partir de la classe dérivéeNonOui
Accessible de l'extérieurNonNon

Définition de privé

Les membres de la classe déclarés comme privés ne peuvent être récupérés qu'au sein de la classe. En d'autres termes, seuls les fonctions ami et membre de la classe peuvent accéder aux membres déclarés dans la section private de la classe. Les membres privés ne peuvent pas être obtenus directement auprès de la classe dérivée et sont inaccessibles en dehors de la portée de la classe.

Le programme C ++ montre le concept de spécificateurs d’accès privé.

 #include using namespace std; classe A {privé: int i; public: void get () {cout <> i; }}; classe B: public A {public: void show () {i ++; cout << "\ n Le numéro que vous avez entré après incrementcpp"> # include using namespace std; classe mammal {public: void mammalMethod (void) {cout << "Il appartient à la catégorie des mammifères." < 

Dans le programme ci-dessus, un objet de la classe enfant est créé avec le nom «ob» et la fonction membre de la classe parent est accessible via la méthode de classe enfant appelante «marine_mammalMethod». Bien que, la méthode parente ne soit pas accessible directement avec l’objet «ob».

Définition de protégé

Les membres de classe déclarés comme protégés dans une classe ne peuvent être accessibles que via les fonctions membre et ami de la classe. Il est impossible d'accéder à ces membres protégés en dehors de la portée de la classe, à l'exception de la classe enfant (qui en dérive immédiatement). Il remplit une fonction limitée en matière d'héritage et hérite des propriétés de manière limitée.

Le programme C ++ donné ci-dessous illustre le concept de spécificateurs d'accès protégés.

 #include using namespace std; class account1 {protected: int x, y; // accessible à la classe dérivée public: void set (int a, int b) {x = a; y = b; } void show () {cout < 

Dans l'exemple ci-dessus, la classe enfant hérite des propriétés de la classe de base car les membres de données sont déclarés publics ou protégés. Cela ne serait pas possible si x et y avaient été déclarés privés dans la classe de base.

Différences clés entre privé et protégé en C ++

  1. Le mot-clé protected peut être utilisé pour créer des membres de classe qui sont privés pour leur classe, mais peuvent être hérités et utilisés par la classe dérivée. Inversement, cela n'est pas possible avec l'utilisation de private, car les membres private ne peuvent pas être hérités directement de la classe dérivée.
  2. Lorsque la classe de base est héritée à l'aide du spécificateur d'accès privé, tous les membres publics et protégés de la classe de base sont définis, c'est-à-dire les membres privés de la classe dérivée. Par contre, ce n'est pas le cas dans les spécificateurs d'accès protégés.

Conclusion

Privé et protégé sont les spécificateurs d'accès utilisés pour définir différemment la visibilité de la classe et de ses membres. Cependant, protégé est plus flexible que privé.

Top