Comment contrôler les modificateurs d'accès en C++ : comprendre la visibilité des membres

Comment Controler Les Modificateurs D Acces En C Comprendre La Visibilite Des Membres



Le masquage des données est l'une des fonctionnalités clés du C++ qui fait référence à la limitation de l'accès aux données d'une classe pour empêcher tout accès indésirable aux données d'une classe depuis l'extérieur. Par conséquent, les modificateurs d’accès sont utilisés pour définir quels membres de la classe sont accessibles à quelle source extérieure et lesquels ne le sont pas.

Modificateurs d'accès en C++

Les modificateurs d'accès permettent de gérer l'accessibilité et la visibilité des données d'une classe. Ils imposent certaines restrictions aux données membres afin qu'elles ne soient pas accessibles aux fonctions externes. Les modificateurs d'accès sont de trois types en C++ :

Modificateur d'accès public en C++

Tous les membres de la classe déclarés sous le mot-clé public seront disponibles pour toutes les fonctions extérieures à la classe au sein du programme. L'opérateur d'accès direct aux membres (.), également connu sous le nom d'opérateur point, peut être utilisé avec l'objet de cette classe spécifique pour accéder à ces données membres.







Exemple

Le modificateur d'accès public est utilisé pour déclarer une classe et ses données membres sont accessibles par les autres fonctions du programme.



#include

#include

#include

en utilisant l'espace de noms std ;
Triangle de classe
{
publique :
flotter X , et , Avec ;
vide saisir ( )
{
cout << 'Entrez le côté x d'un triangle :-' ;
manger >> X ;
cout << 'Entrez le côté y d'un triangle :-' ;
manger >> et ;
cout << 'Entrez le côté z d'un triangle :-' ;
manger >> Avec ;
}
vide Zone ( )
{
flotter s = ( X + et + Avec ) / 2 ;
flotter zone = carré ( s * ( s - X ) * ( s - et ) * ( s - Avec ) ) ;
cout << ' \n Aire du Triangle =' << zone ;
}
} ;
int principal ( )
{
Triangle t1 ;
t1. saisir ( ) ;
t1. Zone ( ) ;
retour 0 ;
}

Le Triangle est défini comme la classe et ses paramètres sont sous le mot-clé public. Ensuite, l'aire du triangle est calculée en dehors de cette classe en accédant aux données membres du modificateur public.







Les trois côtés du triangle sont saisis par l'utilisateur et l'aire du triangle est calculée en accédant aux valeurs en dehors de la classe, en utilisant la formule standard, qui est 13,4164.

Modificateur d'accès privé en C++

Tous les membres de la classe déclarés sous le mot-clé private ne seront disponibles pour aucune fonction extérieure à la classe dans le programme. Ces membres privés ne peuvent être lus que par les membres directs de la même classe. Cependant, les fonctions et classes amies peuvent également accéder aux données.



Exemple

Les deux classes public et private sont déclarées et la valeur de retour du programme doit être l'aire du triangle.

#include

#include

#include

en utilisant l'espace de noms std ;
Triangle de classe
{

privé :
flotter X , et , Avec ;
publique :
vide saisir ( )

{

cout << 'Entrez le côté x d'un triangle :-' ;
manger >> X ;
cout << 'Entrez le côté y d'un triangle :-' ;
manger >> et ;
cout << 'Entrez le côté z d'un triangle :-' ;
manger >> Avec ;

}
vide Zone ( )
{

flotter s = ( X + et + Avec ) / 2 ;
flotter zone = carré ( s * ( s - X ) * ( s - et ) * ( s - Avec ) ) ;
cout << ' \n Aire du Triangle =' << zone ;

}

} ;

int principal ( )
{
Triangle t1 ;
t1. saisir ( ) ;
t1. Zone ( ) ;
retour 0 ;

}

Dans main(), l'objet t1 ne peut pas accéder directement à la variable de classe privée float x, y et z, il ne peut donc être manipulé qu'indirectement via la fonction publique input(), puisque cette fonction obtient les valeurs de x, y et z.

L'aire du triangle est obtenue en accédant à la classe privée en la manipulant à l'aide de la classe publique. Si les valeurs de x, y et z ne sont pas déclarées dans la classe publique, elles ne seront pas accessibles dans main() pour les calculs.

Modificateur d'accès protégé en C++

Les membres et fonctions sous le mot-clé protected sont protégés, ils ne sont accessibles que dans la classe et la classe dérivée. Les autres classes ne peuvent pas accéder à leurs données. Ils sont hautement protégés.

Exemple

Les données protégées sous le mot-clé protected ne peuvent être lues qu'au sein de la classe et par la classe qui est la classe dérivée. Cet exemple est la démonstration pratique du modificateur d'accès protégé.

#include

#include

#include

en utilisant l'espace de noms std ;
//classe parent
Triangle de classe
{

protégé :
flotter X , et , Avec ;
} ;
//classe enfant
classe TriangleEnfant : Triangle public {
publique :
vide saisir ( )

{

cout << 'Entrez le côté x d'un triangle :-' ;
manger >> X ;
cout << 'Entrez le côté y d'un triangle :-' ;
manger >> et ;
cout << 'Entrez le côté z d'un triangle :-' ;
manger >> Avec ;

}
vide Zone ( )
{
flotter s = ( X + et + Avec ) / 2 ;
flotter zone = carré ( s * ( s - X ) * ( s - et ) * ( s - Avec ) ) ;
cout << ' \n Aire du Triangle =' << zone ;

}
} ;

int principal ( )

{
TriangleEnfant Enfant ;
Enfant. saisir ( ) ;
Enfant. Zone ( ) ;
retour 0 ;

}

TriangleChild est une classe héritée dérivée de la classe Triangle. Les variables x, y et z sont déclarées dans Triangle avec le mot clé protected. Cela signifie que ces variables sont protégées mais sont accessibles par TriangleChild puisque Triangle est sa classe parent. Les valeurs des variables ont été attribuées dans TriangleChild même si elles sont déclarées dans la classe Triangle.

Les variables sont accessibles via la classe enfant, puis l'aire d'un triangle est calculée.

Conclusion

Le masquage des données empêche l’accès indésirable aux données d’une classe depuis l’extérieur. Les modificateurs d'accès sont utilisés pour gérer l'accessibilité et la visibilité des données dans un programme. Des modificateurs d'accès privés, protégés et publics sont utilisés pour masquer les données. Les données sous le mot-clé public peuvent également être lues par les fonctions extérieures à la classe. Les données déclarées comme privées ne peuvent être lues qu'au sein de la classe, tandis que les données protégées sont également accessibles par la classe parent et la classe enfant.