Cum să controlați modificatorii de acces în C++: înțelegerea vizibilității membrilor

Cum Sa Controlati Modificatorii De Acces In C Intelegerea Vizibilitatii Membrilor



Ascunderea datelor este una dintre caracteristicile cheie ale C++ care se referă la limitarea accesului la date dintr-o clasă pentru a preveni accesul nedorit la datele unei clase din exterior. Prin urmare, modificatorii de acces sunt utilizați pentru a defini ce membri ai clasei sunt accesibili pentru care sursă externă și care nu.

Modificatori de acces în C++

Modificatorii de acces sunt utilizați pentru a gestiona accesibilitatea și vizibilitatea datelor unei clase. Ei stabilesc anumite restricții pentru membrii datelor, astfel încât aceștia să nu poată fi accesați de către funcțiile externe. Modificatorii de acces sunt de trei tipuri în C++:

Modificator de acces public în C++

Toți membrii clasei declarați sub cuvântul cheie public vor fi disponibili pentru toate funcțiile din afara clasei din cadrul programului. Operatorul de acces direct membru (.) cunoscut și sub numele de operator punct poate fi utilizat cu obiectul acelei clase specifice pentru a accesa acești membri de date.







Exemplu

Modificatorul de acces public este folosit pentru a declara o clasă, iar membrii ei de date sunt accesați de celelalte funcții din program.



#include

#include

#include

folosind namespace std ;
Triunghiul clasei
{
public :
pluti X , și , Cu ;
gol intrare ( )
{
cout << „Introduceți latura x a unui triunghi:-” ;
mâncând >> X ;
cout << „Introduceți latura y a unui triunghi:-” ;
mâncând >> și ;
cout << „Introduceți latura z a unui triunghi:-” ;
mâncând >> Cu ;
}
gol Zonă ( )
{
pluti s = ( X + și + Cu ) / 2 ;
pluti zonă = sqrt ( s * ( s - X ) * ( s - și ) * ( s - Cu ) ) ;
cout << ' \n Aria triunghiului =' << zonă ;
}
} ;
int principal ( )
{
Triunghiul t1 ;
t1. intrare ( ) ;
t1. Zonă ( ) ;
întoarcere 0 ;
}

Triunghiul este definit ca clasa și parametrii săi se află sub cuvântul cheie public. Apoi aria triunghiului este calculată în afara acestei clase prin accesarea membrilor de date ai modificatorului public.







Cele trei laturi ale triunghiului sunt introduse de utilizator, iar aria triunghiului este calculată accesând valorile din afara clasei, folosind formula standard, care este 13,4164.

Modificator de acces privat în C++

Toți membrii clasei declarați sub cuvântul cheie private nu vor fi disponibili pentru nicio funcție din afara clasei din program. Acești membri privați pot fi citiți numai de membrii direcți din cadrul aceleiași clase. Cu toate acestea, funcțiile și clasele de prieteni pot accesa și datele.



Exemplu

Cele două clase publice și private sunt declarate, iar valoarea returnată a programului trebuie să fie aria triunghiului.

#include

#include

#include

folosind namespace std ;
Triunghiul clasei
{

privat :
pluti X , și , Cu ;
public :
gol intrare ( )

{

cout << „Introduceți latura x a unui triunghi:-” ;
mâncând >> X ;
cout << „Introduceți latura y a unui triunghi:-” ;
mâncând >> și ;
cout << „Introduceți latura z a unui triunghi:-” ;
mâncând >> Cu ;

}
gol Zonă ( )
{

pluti s = ( X + și + Cu ) / 2 ;
pluti zonă = sqrt ( s * ( s - X ) * ( s - și ) * ( s - Cu ) ) ;
cout << ' \n Aria triunghiului =' << zonă ;

}

} ;

int principal ( )
{
Triunghiul t1 ;
t1. intrare ( ) ;
t1. Zonă ( ) ;
întoarcere 0 ;

}

În main(), obiectul t1 nu poate accesa direct variabila de clasă privată float x, y și z, deci poate fi manipulat doar indirect prin funcția publică input(), deoarece această funcție obține valorile lui x, y și z.

Aria triunghiului se obține prin accesarea clasei private prin manipularea acesteia folosind clasa publică. Dacă valorile lui x, y și z nu vor fi declarate în clasa publică, atunci ele nu vor fi accesate în main() pentru calcule.

Modificator de acces protejat în C++

Membrii și funcțiile din cuvântul cheie protected sunt protejate, ele pot fi accesate numai în cadrul clasei și clasei derivate. Restul claselor nu își pot accesa datele. Sunt foarte protejați.

Exemplu

Datele protejate din cuvântul cheie protected pot fi citite numai în cadrul clasei și de către clasa care este clasa derivată. Acest exemplu este demonstrația practică a modificatorului de acces protejat.

#include

#include

#include

folosind namespace std ;
//clasa părinte
Triunghiul clasei
{

protejat :
pluti X , și , Cu ;
} ;
//clasa de copii
clasa TriunghiCopil : Triunghiul public {
public :
gol intrare ( )

{

cout << „Introduceți latura x a unui triunghi:-” ;
mâncând >> X ;
cout << „Introduceți latura y a unui triunghi:-” ;
mâncând >> și ;
cout << „Introduceți latura z a unui triunghi:-” ;
mâncând >> Cu ;

}
gol Zonă ( )
{
pluti s = ( X + și + Cu ) / 2 ;
pluti zonă = sqrt ( s * ( s - X ) * ( s - și ) * ( s - Cu ) ) ;
cout << ' \n Aria triunghiului =' << zonă ;

}
} ;

int principal ( )

{
TriunghiCopil Copil ;
Copil. intrare ( ) ;
Copil. Zonă ( ) ;
întoarcere 0 ;

}

TriangleChild este o clasă moștenită care este derivată din clasa Triangle. Variabilele x, y și z sunt declarate în Triunghi cu cuvântul cheie protejat. Aceasta înseamnă că aceste variabile sunt protejate, dar pot fi accesate de TriangleChild, deoarece Triangle este clasa părinte. Valorile variabilelor au fost atribuite în TriangleChild chiar dacă sunt declarate în clasa Triangle.

Variabilele sunt accesate prin clasa copil și apoi se calculează aria unui triunghi.

Concluzie

Ascunderea datelor împiedică accesul nedorit la datele unei clase din exterior. Modificatorii de acces sunt utilizați pentru a gestiona accesibilitatea și vizibilitatea datelor dintr-un program. Modificatorii de acces privat, protejat și public sunt utilizați pentru ascunderea datelor. Datele din cuvântul cheie public pot fi citite și de funcțiile din afara clasei. Datele declarate ca private pot fi citite numai în cadrul clasei, în timp ce datele protejate pot fi accesate și de clasa părinte și copil.