Introduction aux modificateurs d'accès en C ++

La protection des données est une tendance depuis longtemps, car c'est la partie la plus importante de chaque domaine. Si cela va dans la mauvaise main, vous en souffrirez beaucoup. Pour gérer vos données de manière systématique, la programmation orientée objet offre une caractéristique saillante connue sous le nom de masquage des données. Ce concept peut être implémenté en C ++ à l'aide de modificateurs Access. Ce sont des mots clés qui sont utilisés pour définir l'accessibilité des méthodes, des classes et d'autres membres. Public, Private and Protected est connu sous le nom de Modificateurs d'accès ou Spécificateurs d'accès dans les langages de programmation orientés objet. Pour empêcher les fonctions d'un programme d'accéder directement à la représentation interne d'une classe, le masquage des données est utilisé.

Types de modificateurs d'accès en C ++

Il existe 3 types de modificateurs d'accès en C ++

  1. Publique
  2. Privé
  3. Protégé

Jetons un coup d'œil à ces modificateurs avec des exemples:

1. Public

Comme son nom l'indique, accessible à tous. Tous les membres de la classe seront accessibles à tous après les avoir déclarés publics. Un membre public est accessible n'importe où en dehors de la classe mais dans un programme. Les membres de données sont également accessibles par d'autres classes s'ils sont déclarés publics. Comme il n'y a aucune restriction dans le modificateur public, nous pouvons utiliser l'opérateur point (.) Pour accéder directement aux fonctions et données des membres.

Code:

#include
using namespace std;
class parent
(
private:
int p;
protected:
int q;
public:
int r;
parent() //constructor to initialize data members
(
p = 100;
q = 200;
r = 300;
)
);
//Inheritance concept
class child: public parent
(
//q becomes protected and r becomes public members of class child
public:
void showdata()
(
cout << "p is not accessible" << endl;
cout << "value of q is " << q << endl;
cout << "value of r is " << r << endl;
)
);
int main()
(
child c; //object of derived class(child)
c.showdata();
//cp = 100; invalid : private member, no access
//cq = 200; invalid : q is now private member of child class
//cr = 300; invalid : r is also now a private member of child class
return 0;
)

Production:


2. Privé

Un modificateur privé est l'un des meilleurs modificateurs d'accès en C ++. La portée des membres de données privées reste à l'intérieur de la classe, c'est pourquoi la fonction à l'intérieur de la classe peut accéder aux membres de classe déclarés privés. Parce que c'est ce que signifie privé seulement vous décidez qui peut utiliser vos affaires (comme un ami) ou non. Vous ne pouvez pas accéder aux membres directement par un objet ou une fonction qui est en dehors de la classe. La fonction d'un ami (comme je l'ai dit peut utiliser vos affaires) peut être utilisée pour accéder aux données privées des membres de la classe. Vous obtiendrez une erreur de compilation lors de l'accès aux membres de données privées de n'importe où en dehors de la classe.

Code:

#include
using namespace std;
// Defining class
class Circle
( // private data member
private:
double radius;
// public member function
public:
void areaOfCircle(double r)
( // member function can access private
// data member radius
radius = r;
double area = 3.14*radius*radius;
cout << "Radius is: " << radius << endl;
cout << "Area is: " << area;
) );
// Main function
int main()
( // creating class object
Circle c;
/* trying to access private data member
directly outside the class */
c.areaOfCircle(4.5);
return 0;
)

Production:

En utilisant le code ci-dessus, nous pouvons accéder indirectement aux données privées des membres d'une classe en utilisant indirectement les fonctions membres publiques de la classe.

3. Protégé

Le dernier spécificateur d'accès le plus important utilisé comme modificateurs d'accès en C ++ car son comportement est assez similaire à un modificateur d'accès privé. Les membres ou fonctions de données protégées ne peuvent pas être accessibles directement à partir d'autres classes. Vous pouvez utiliser une fonction ami pour accéder aux membres protégés car elle permet cette fonctionnalité. Il existe certaines restrictions sur le modificateur protégé. Les membres déclarés protégés ne peuvent être protégés qu'au niveau suivant, puis il devient privé.

Code:

#include
using namespace std;
// Base class
class Parent
( // Protected data members
protected:
int id_protect;
);
// Derived class
class Child : public Parent
( public:
void set(int id)
( /* Child class to access the inherited protected data
members of the Base class */
id_protect = id;
)
void display() (
cout << "id_protect is: " << id_protect << endl;
)
);
// Main function
int main() (
Child p;
/* member function(derived class) can easily
access the data members(protected) of the base class */
p.set(07);
p.display();
return 0;
)

Production:

A partir du code ci-dessus, vous pouvez voir que id_protect est déclaré protégé et accessible à l'aide de la fonction membre de la classe dérivée. Cela signifie que vous pouvez accéder au membre de données protégé de la classe de base à l'aide de la fonction membre de la classe dérivée.

Avantages des modificateurs d'accès en C ++

Voici les différents avantages des modificateurs d'accès en C ++:

  • Le modificateur d'accès vous donne le pouvoir de contrôler vos données en fonction des scénarios. Si vous travaillez dans un domaine bancaire, vous devez utiliser des membres de données privés pour garder vos données cachées des autres utilisateurs, l'autorité est entre vos mains. Vous pouvez les rendre publics si vous le souhaitez, mais ce ne sera pas une excellente approche car dans ce cas, n'importe qui peut modifier vos données à tout moment
  • Tous les membres publics de la classe de base deviennent des membres publics de la classe dérivée. De la même manière, tous les membres protégés de la classe de base deviennent des membres protégés de la classe dérivée, ce qui vous aidera à gérer facilement les données dans tous les aspects car, comme vous pouvez le voir, l'accès à ces membres ne change pas si vous utilisez l'héritage public dans votre langage de programmation .
  • Dans le scénario d'héritage privé, tous les membres publics de la classe de base deviennent des membres privés de la classe dérivée. De la même manière, tous les membres protégés de la classe de base deviennent des membres privés de la classe dérivée tandis que, dans le scénario d'héritage protégé, tous les membres publics de la classe de base deviennent des membres protégés de la classe dérivée et tous les membres protégés de la classe de base deviennent des membres protégés de la classe dérivée. Notez que dans la spécification d'accès C ++ fonctionne sur une base par classe, pas sur une base par objet.

Conclusion

Plusieurs langages de programmation n'ont pas d'accès privé et protégé, par conséquent, n'importe quel utilisateur peut l'utiliser comme il le souhaite. Les codeurs C ++ ne feront pas confiance aux utilisateurs, ils ne sont donc pas autorisés à l'utiliser. En tant que données publiques, les membres peuvent présenter un risque potentiel sérieux de bugs ou de pirates.

Articles recommandés

Ceci est un guide des modificateurs d'accès en C ++. Nous discutons ici des types de modificateurs d'accès en C ++ ainsi que de ses exemples et de certains avantages. Vous pouvez également consulter les articles suivants pour en savoir plus-

  1. Modificateurs d'accès en Java
  2. Encapsulation en C ++
  3. Commandes C ++
  4. Meilleur compilateur C ++
  5. Types de modificateurs d'accès en C #
  6. Encapsulation en JavaScript
  7. Les 11 principales fonctionnalités et avantages de C ++