Kako nadzorovati modifikatorje dostopa v C++: Razumevanje vidnosti članov

Kako Nadzorovati Modifikatorje Dostopa V C Razumevanje Vidnosti Clanov



Skrivanje podatkov je ena ključnih lastnosti C++, ki se nanaša na omejevanje dostopa do podatkov v razredu, da se prepreči neželen dostop do podatkov razreda od zunaj. Zato se modifikatorji dostopa uporabljajo za določanje, kateri člani razreda so dostopni kateremu zunanjemu viru in kateri ne.

Modifikatorji dostopa v C++

Modifikatorji dostopa se uporabljajo za upravljanje dostopnosti in vidnosti podatkov razreda. Nastavijo nekatere omejitve za podatkovne člane, tako da do njih ne morejo dostopati zunanje funkcije. Modifikatorji dostopa so v C++ treh vrst:

Modifikator javnega dostopa v C++

Vsi člani razreda, deklarirani pod ključno besedo public, bodo na voljo vsem funkcijam zunaj razreda znotraj programa. Operator neposrednega dostopa do članov (.), znan tudi kot operator pike, se lahko uporablja z objektom tega specifičnega razreda za dostop do teh podatkovnih članov.







Primer

Modifikator javnega dostopa se uporablja za deklaracijo razreda, do njegovih podatkovnih članov pa dostopajo druge funkcije v programu.



#include

#include

#include

uporaba imenskega prostora std ;
razred Trikotnik
{
javnosti :
lebdi x , in , z ;
praznina vnos ( )
{
cout << 'Vnesite stran x trikotnika:-' ;
prehranjevanje >> x ;
cout << 'Vnesite stranico y trikotnika:-' ;
prehranjevanje >> in ;
cout << 'Vnesite stran z trikotnika:-' ;
prehranjevanje >> z ;
}
praznina Območje ( )
{
lebdi s = ( x + in + z ) / 2 ;
lebdi območje = sqrt ( s * ( s - x ) * ( s - in ) * ( s - z ) ) ;
cout << ' \n Površina trikotnika =' << območje ;
}
} ;
int glavni ( )
{
Trikotnik t1 ;
t1. vnos ( ) ;
t1. Območje ( ) ;
vrnitev 0 ;
}

Trikotnik je definiran kot razred in njegovi parametri so pod ključno besedo public. Nato se površina trikotnika izračuna zunaj tega razreda z dostopom do podatkovnih članov javnega modifikatorja.







Tri stranice trikotnika vnese uporabnik, površina trikotnika pa se izračuna z dostopom do vrednosti zunaj razreda z uporabo standardne formule, ki je 13,4164.

Modifikator zasebnega dostopa v C++

Vsi člani razreda, razglašeni pod ključno besedo private, ne bodo na voljo nobeni funkciji zunaj razreda v programu. Te zasebne člane lahko berejo samo neposredni člani v istem razredu. Vendar pa lahko do podatkov dostopajo tudi prijateljske funkcije in razredi.



Primer

Razreda public in private sta deklarirana, vrnjena vrednost programa pa mora biti površina trikotnika.

#include

#include

#include

uporaba imenskega prostora std ;
razred Trikotnik
{

zasebno :
lebdi x , in , z ;
javnosti :
praznina vnos ( )

{

cout << 'Vnesite stran x trikotnika:-' ;
prehranjevanje >> x ;
cout << 'Vnesite stranico y trikotnika:-' ;
prehranjevanje >> in ;
cout << 'Vnesite stran z trikotnika:-' ;
prehranjevanje >> z ;

}
praznina Območje ( )
{

lebdi s = ( x + in + z ) / 2 ;
lebdi območje = sqrt ( s * ( s - x ) * ( s - in ) * ( s - z ) ) ;
cout << ' \n Površina trikotnika =' << območje ;

}

} ;

int glavni ( )
{
Trikotnik t1 ;
t1. vnos ( ) ;
t1. Območje ( ) ;
vrnitev 0 ;

}

V main() objekt t1 ne more neposredno dostopati do spremenljivke zasebnega razreda float x, y in z, zato ga je mogoče posredno manipulirati prek javne funkcije input(), saj ta funkcija pridobi vrednosti x, y in z.

Območje trikotnika se pridobi z dostopom do zasebnega razreda z manipulacijo z njim z uporabo javnega razreda. Če vrednosti x, y in z ne bodo deklarirane v javnem razredu, potem do njih ne bo dostopno v main() za izračune.

Modifikator zaščitenega dostopa v C++

Člani in funkcije pod ključno besedo protected so zaščiteni, do njih je mogoče dostopati samo znotraj razreda in izpeljanega razreda. Ostali razredi nimajo dostopa do svojih podatkov. So zelo zaščiteni.

Primer

Zaščitene podatke pod ključno besedo protected lahko bere samo znotraj razreda in razred, ki je izpeljan razred. Ta primer je praktična predstavitev modifikatorja zaščitenega dostopa.

#include

#include

#include

uporaba imenskega prostora std ;
//nadrejeni razred
razred Trikotnik
{

zaščiten :
lebdi x , in , z ;
} ;
//razred otroka
razred TriangleChild : javni trikotnik {
javnosti :
praznina vnos ( )

{

cout << 'Vnesite stran x trikotnika:-' ;
prehranjevanje >> x ;
cout << 'Vnesite stranico y trikotnika:-' ;
prehranjevanje >> in ;
cout << 'Vnesite stran z trikotnika:-' ;
prehranjevanje >> z ;

}
praznina Območje ( )
{
lebdi s = ( x + in + z ) / 2 ;
lebdi območje = sqrt ( s * ( s - x ) * ( s - in ) * ( s - z ) ) ;
cout << ' \n Površina trikotnika =' << območje ;

}
} ;

int glavni ( )

{
TriangleChild Otrok ;
Otrok. vnos ( ) ;
Otrok. Območje ( ) ;
vrnitev 0 ;

}

TriangleChild je podedovan razred, ki je izpeljan iz razreda Triangle. Spremenljivke x, y in z so deklarirane v Triangle s ključno besedo protected. To pomeni, da so te spremenljivke zaščitene, vendar lahko do njih dostopa TriangleChild, saj je Triangle njegov nadrejeni razred. Vrednosti spremenljivk so bile dodeljene v TriangleChild, čeprav so deklarirane v razredu Triangle.

Do spremenljivk dostopamo prek podrejenega razreda, nato pa se izračuna ploščina trikotnika.

Zaključek

Skrivanje podatkov preprečuje neželen dostop do podatkov razreda od zunaj. Modifikatorji dostopa se uporabljajo za upravljanje dostopnosti in vidnosti podatkov v programu. Za skrivanje podatkov se uporabljajo zasebni, zaščiteni in javni modifikatorji dostopa. Podatke pod ključno besedo public lahko berejo tudi funkcije izven razreda. Podatke, ki so deklarirani kot zasebni, je mogoče brati samo znotraj razreda, medtem ko lahko do zaščitenih podatkov dostopata tudi nadrejeni in podrejeni razred.