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.