Quelle est la différence entre les membres privés et protégés des classes C ++

Quelle est la différence entre les membres privés et protégés des classes C ++
C ++ est un langage de programmation (OOP) orienté objet qui fournit un mécanisme pour encapsuler les données et les fonctions en une seule entité appelée classe. L'une des caractéristiques essentielles de la classe est la possibilité de spécifier le niveau d'accès pour ses membres. Dans la programmation orientée objet, Spécificateurs d'accès sont utilisés pour contrôler la visibilité et l'accessibilité des champs et méthodes d'une classe. Protégé, public, et privé Les niveaux d'accès sont les trois types de base de niveaux d'accès en C++.

Dans cet article, nous discuterons de la différence entre les deux principaux spécificateur d'accèss, privé et protégé membres d'une classe C ++.

Spécificateur d'accès privé

Membres privés sont déclarés utiliser le mot-clé 'privé'. Le spécificateur d'accès privé limite l'accès aux membres de la classe uniquement à la classe elle-même. Le code en dehors de la classe ne peut pas accéder ou modifier un membre privé. Cela signifie que seules les méthodes déclarées dans la classe peuvent accéder et fonctionner sur le membres privés, Les cours même dérivés ne peuvent pas accéder membres privés. Une utilisation courante de membres privés est pour assurer le bon fonctionnement d'une classe. Membres privés sont utilisés pour encapsuler les données de classe et fournir un niveau d'abstraction aux utilisateurs de la classe.

#inclure
Utilisation de Namespace Std;
Class Player
privé:
nom de chaîne;
en âge;
public:
void getPlayer ()

couter << "Enter name: ";
cin >> nom;
couter << "Enter age: ";
Cin >> âge;

void showplayer ()

couter << "Name: " << name << endl;
couter << "Age: " << age << endl;

;
int main()

Joueur PL;
PL.getPlayer ();
PL.showPlayer ();
retour 0;

Dans le code ci-dessus, nous utilisons les méthodes des membres publics getPlayer () et showplayer () pour accéder aux deux privé membres' nom et âge. Le getPlayer () La fonction obtient les entrées des utilisateurs et l'affiche à l'écran via showplayer () fonction.

Sortir

Spécificateur d'accès protégé

Membres protégés d'une classe est accessible à la fois par les classes dérivées et les fonctions membres de la classe elle-même. Membres protégés sont utilisés pour fournir un niveau d'accès aux classes dérivées sans exposer les détails de mise en œuvre au monde extérieur. Membres protégés sont déclarés utiliser le mot-clé 'protégé' et le Colon (:) personnage. Membres protégés Permettez à une classe d'être étendue et modifiée, sans compromettre son intégrité. Une classe dérivée peut utiliser membres protégés Pour affiner ou personnaliser le comportement d'une classe de base.

Voici un exemple de classe avec membres protégés:

#inclure
Utilisation de Namespace Std;
Class Player
privé:
nom de chaîne;
en âge;
protégé:
INT OBJECTIFS;
public:
void getPlayer ()

nom cout;
COUT AGE;

void showplayer ()

couter << "Name: " << name << endl;
couter << "Age: " << age << endl;

;
Class Player1: Public Player
privé:
Country à cordes;
public:
void set_goals (int g)

buts = g;

void getPlayer1 ()

getPlayer ();
pays cout;

void showplayer1 ()

couter << "goals: " << goals << endl;
showPlayer ();
couter << "Country: " << country << endl;

;
int main()

Player1 PL;
PL.set_goals (101);
PL.getPlayer1 ();
PL.showPlayer1 ();
retour 0;

Le joueur La classe comprend deux membres privés, nom et âge, un protégé membre, buts, et privé Les membres sont utilisés à l'intérieur du public fonctions membres, getPlayer () et showplayer (). Il y a deux classes, joueur et joueur 1, qui sont tous les deux des classes de base. Un privé membre, pays, et trois public Les méthodes des membres constituent le joueur 1 classe. Fixer des objectifs() est utilisé pour modifier le membre protégé buts' valeur. getPlayer1 () appelle le getPlayer () fonction membre du joueur classe tout en récupérant en plus les contributions du pays. Similaire à ce, showPlayer1 () appelle le showplayer () fonction membre et imprime le buts et pays valeurs.

Sortir

Différence entre les membres privés et protégés des classes C ++

Voici quelques-unes des principales différences entre Privé et Protégé membres des classes C ++.

1: portée et fonctionnalité

Lorsque vous envisagez l'utilisation de spécificateurs d'accès, il est crucial de réfléchir soigneusement au portée et Fonctionnalité du programme. UN spécificateur d'accès privé Fournit le plus haut niveau de sécurité et évite l'accès involontaire aux variables et aux méthodes. D'un autre côté, un spécificateur d'accès protégé offre une gamme plus vaste d'accessibilité et de flexibilité, ce qui est essentiel lors de la planification de hériter des cours dérivés d'une classe de base.

2: Niveau d'accès

La principale différence entre privé et membres protégés est le niveau d'accès qu'ils fournissent. Protégé Les membres peuvent être accessibles à la fois par les classes dérivées de la classe et les fonctions des membres, mais privé Les membres ne peuvent être obtenus que par les fonctions des membres de la classe.

3: Encapsulation de la classe

Une autre différence cruciale entre privé et protégé Les membres sont leur rôle dans le maintien de l'encapsulation de la classe. Pour isoler les données et fournir aux utilisateurs de la classe un certain niveau d'abstraction, privé Les membres sont employés. Protégé Les membres sont employés pour gérer la structure des successions et donner accès aux membres de la classe de base par des classes dérivées.

Dernières pensées

Privé et membres protégés sont les deux niveaux d'accès essentiels dans la classe C ++. Le privé Le spécificateur d'accès rend les membres de la classe inaccessibles à tous les utilisateurs externes, et il est utilisé pour conserver des informations privé dans la classe. En revanche, un protégé Le spécificateur d'accès permet d'accéder aux membres de la classe uniquement par des classes dérivées, est utilisée pour fournir des fonctionnalités de classe de base et permet une modification sans modifier le comportement de la classe de base. Le niveau d'accès des membres de la classe joue un rôle crucial dans le maintien de l'encapsulation de la classe et la fourniture d'un niveau d'accès aux utilisateurs de la classe.