Dans ce didacticiel, nous allons découvrir les modificateurs d'accès pour les classes C ++ à l'aide d'exemples. Les modificateurs d'accès de C ++ sont publics, privés et protégés.
L'une des principales caractéristiques des langages de programmation orientés objet tels que C ++ est le masquage des données .
Le masquage des données fait référence à la restriction de l'accès aux données membres d'une classe. Cela permet d'éviter que d'autres fonctions et classes ne falsifient les données de classe.
Cependant, il est également important de rendre certaines fonctions membres et données membres accessibles afin que les données masquées puissent être manipulées indirectement.
Les modificateurs d'accès de C ++ nous permettent de déterminer quels membres de classe sont accessibles à d'autres classes et fonctions, et lesquels ne le sont pas.
Par exemple,
class Patient ( private: int patientNumber; string diagnosis; public: void billing() ( // code ) void makeAppointment() ( // code ) );
Ici, les variables patientNumber et diagnostic de la Patient
classe sont masquées à l'aide du private
mot - clé, tandis que les fonctions membres sont rendues accessibles à l'aide du public
mot - clé.
Types de modificateurs d'accès C ++
En C ++, il existe 3 modificateurs d'accès:
public
private
protected
Modificateur d'accès public
- Le
public
mot-clé est utilisé pour créer des membres publics (données et fonctions). - Les membres du public sont accessibles à partir de n'importe quelle partie du programme.
Exemple 1: modificateur d'accès public C ++
#include using namespace std; // define a class class Sample ( // public elements public: int age; void displayAge() ( cout << "Age = " << age << endl; ) ); int main() ( // declare a class object Sample obj1; cout <> obj1.age; // call class function obj1.displayAge(); return 0; )
Production:
Entrez votre âge: 20 Âge = 20
Dans ce programme, nous avons créé une classe nommée Sample
, qui contient une public
variable age et une public
fonction displayAge()
.
Dans main()
, nous avons créé un objet de la Sample
classe nommé obj1. On accède alors directement aux éléments publics en utilisant les codes obj.age
et obj.displayAge()
.
Modificateur d'accès privé
- Le
private
mot-clé est utilisé pour créer des membres privés (données et fonctions). - Les membres privés sont accessibles uniquement à partir de la classe.
- Cependant, les classes d'amis et les fonctions d'amis peuvent accéder aux membres privés.
Exemple 2: spécificateur d'accès privé C ++
#include using namespace std; // define a class class Sample ( // private elements private: int age; // public elements public: void displayAge(int a) ( age = a; cout << "Age = " << age << endl; ) ); int main() ( int ageInput; // declare an object Sample obj1; cout <> ageInput; // call function and pass ageInput as argument obj1.displayAge(ageInput); return 0; )
Production:
Entrez votre âge: 20 Âge = 20
Dans main()
, l'objet obj1 ne peut pas accéder directement à la variable de classe age.
// error cin>> obj1.age;
Nous ne pouvons manipuler qu'indirectement l'âge via la fonction publique displayAge()
, puisque cette fonction affecte l'âge à l'argument qui lui est passé, c'est-à-dire le paramètre de fonction int a
.
Modificateur d'accès protégé
Before we learn about the protected
access specifier, make sure you know about inheritance in C++.
- The
protected
keyword is used to create protected members (data and function). - The protected members can be accessed within the class and from the derived class.
Example 3: C++ protected Access Specifier
#include using namespace std; // declare parent class class Sample ( // protected elements protected: int age; ); // declare child class class SampleChild : public Sample ( public: void displayAge(int a) ( age = a; cout << "Age = " << age << endl; ) ); int main() ( int ageInput; // declare object of child class SampleChild child; cout <> ageInput; // call child class function // pass ageInput as argument child.displayAge(ageInput); return 0; )
Output:
Enter your age: 20 Age = 20
Here, ChildSample
is an inherited class that is derived from Sample
. The variable age is declared in Sample
with the protected
keyword.
This means that ChildSample
can access age since Sample
is its parent class.
We see this as we have assigned the value of age in ChildSample
even though age is declared in the Sample
class.
Summary: public, private, and protected
public
elements can be accessed by all other classes and functions.private
les éléments ne sont pas accessibles en dehors de la classe dans laquelle ils sont déclarés, sauf par lesfriend
classes et les fonctions.protected
les éléments sont comme lesprivate
, sauf qu'ils sont accessibles par des classes dérivées.
Prescripteurs | Même classe | Classe dérivée | Hors classe |
---|---|---|---|
public | Oui | Oui | Oui |
private | Oui | Non | Non |
protected | Oui | Oui | Non |
Remarque: Par défaut, les membres de classe en C ++ sont private
, sauf indication contraire.