Juurdepääsu modifikaatorite juhtimine C++-s: liikmete nähtavuse mõistmine

Juurdepaasu Modifikaatorite Juhtimine C S Liikmete Nahtavuse Moistmine



Andmete peitmine on C++ üks põhifunktsioone, mis viitab andmetele juurdepääsu piiramisele klassis, et vältida soovimatut juurdepääsu klassi andmetele väljastpoolt. Seega kasutatakse juurdepääsu modifikaatoreid, et määratleda, millised klassi liikmed on millisele välisele allikale juurdepääsetavad ja millised mitte.

Juurdepääs C++ modifikaatoritele

Juurdepääsu muutjaid kasutatakse klassi andmete juurdepääsetavuse ja nähtavuse haldamiseks. Nad seavad andmeliikmetele teatud piirangud, nii et välisfunktsioonid ei pääse neile juurde. Juurdepääsu muutjaid on C++-s kolme tüüpi:

Avaliku juurdepääsu muutja C++ keeles

Kõik märksõnaga public deklareeritud klassi liikmed on programmis kättesaadavad kõikidele klassivälistele funktsioonidele. Liikme otsejuurdepääsu operaatorit (.), mida tuntakse ka punktioperaatorina, saab nendele andmeliikmetele juurdepääsuks kasutada selle konkreetse klassi objektiga.







Näide

Avaliku juurdepääsu modifikaatorit kasutatakse klassi deklareerimiseks ja selle andmeliikmetele pääsevad juurde programmi teised funktsioonid.



#include

#include

#include

kasutades nimeruumi std ;
klassi kolmnurk
{
avalik :
ujuk x , ja , Koos ;
tühine sisend ( )
{
cout << 'Sisestage kolmnurga külg x:-' ;
söömine >> x ;
cout << 'Sisestage kolmnurga külg y:-' ;
söömine >> ja ;
cout << 'Sisesta kolmnurga külg z:-' ;
söömine >> Koos ;
}
tühine Piirkond ( )
{
ujuk s = ( x + ja + Koos ) / 2 ;
ujuk ala = sqrt ( s * ( s - x ) * ( s - ja ) * ( s - Koos ) ) ;
cout << ' \n Kolmnurga =' pindala << ala ;
}
} ;
int peamine ( )
{
Kolmnurk t1 ;
t1. sisend ( ) ;
t1. Piirkond ( ) ;
tagasi 0 ;
}

Kolmnurk on määratletud kui klass ja selle parameetrid on avaliku märksõna all. Seejärel arvutatakse kolmnurga pindala väljaspool seda klassi, kasutades juurdepääsu avaliku modifikaatori andmeliikmetele.







Kolmnurga kolm külge sisestab kasutaja ja kolmnurga pindala arvutatakse klassi välistele väärtustele juurdepääsu kaudu, kasutades standardvalemit, milleks on 13,4164.

Privaatjuurdepääsu modifikaator keeles C++

Kõik märksõnaga privaatsed klassi liikmed ei ole programmis ühelegi klassivälisele funktsioonile kättesaadavad. Neid eraliikmeid saavad lugeda ainult sama klassi otsesed liikmed. Kuid andmetele pääsevad juurde ka sõbrafunktsioonid ja klassid.



Näide

Kaks klassi avaliku ja privaatne on deklareeritud ning programmi tagastusväärtus on kolmnurga pindala.

#include

#include

#include

kasutades nimeruumi std ;
klassi kolmnurk
{

privaatne :
ujuk x , ja , Koos ;
avalik :
tühine sisend ( )

{

cout << 'Sisestage kolmnurga külg x:-' ;
söömine >> x ;
cout << 'Sisestage kolmnurga külg y:-' ;
söömine >> ja ;
cout << 'Sisesta kolmnurga külg z:-' ;
söömine >> Koos ;

}
tühine Piirkond ( )
{

ujuk s = ( x + ja + Koos ) / 2 ;
ujuk ala = sqrt ( s * ( s - x ) * ( s - ja ) * ( s - Koos ) ) ;
cout << ' \n Kolmnurga =' pindala << ala ;

}

} ;

int peamine ( )
{
Kolmnurk t1 ;
t1. sisend ( ) ;
t1. Piirkond ( ) ;
tagasi 0 ;

}

Funktsioonis main() ei saa objekt t1 otse juurdepääsu privaatklassi muutujale float x, y ja z, seega saab seda kaudselt manipuleerida ainult avaliku funktsiooni input() kaudu, kuna see funktsioon saab x, y ja z väärtused.

Kolmnurga pindala saadakse privaatklassi juurde pääsemisel, manipuleerides sellega avaliku klassi abil. Kui x, y ja z väärtusi avalikus klassis ei deklareerita, ei pääse neile arvutuste jaoks juurde ka main()-s.

Kaitstud juurdepääsu modifikaator keeles C++

Kaitstud märksõna all olevad liikmed ja funktsioonid on kaitstud, neile pääseb ligi ainult klassi ja tuletatud klassi piires. Ülejäänud klassid ei pääse oma andmetele juurde. Nad on väga kaitstud.

Näide

Kaitstud märksõna all olevaid kaitstud andmeid saab lugeda ainult klassi sees ja klassi poolt, mis on tuletatud klass. See näide on kaitstud juurdepääsu modifikaatori praktiline demonstratsioon.

#include

#include

#include

kasutades nimeruumi std ;
//vanemaklass
klassi kolmnurk
{

kaitstud :
ujuk x , ja , Koos ;
} ;
//lapsklass
klassi KolmnurkLaps : avalik kolmnurk {
avalik :
tühine sisend ( )

{

cout << 'Sisestage kolmnurga külg x:-' ;
söömine >> x ;
cout << 'Sisestage kolmnurga külg y:-' ;
söömine >> ja ;
cout << 'Sisestage kolmnurga külg z:-' ;
söömine >> Koos ;

}
tühine Piirkond ( )
{
ujuk s = ( x + ja + Koos ) / 2 ;
ujuk ala = sqrt ( s * ( s - x ) * ( s - ja ) * ( s - Koos ) ) ;
cout << ' \n Kolmnurga =' pindala << ala ;

}
} ;

int peamine ( )

{
KolmnurkLaps Laps ;
Laps. sisend ( ) ;
Laps. Piirkond ( ) ;
tagasi 0 ;

}

TriangleChild on päritud klass, mis on tuletatud klassist Triangle. Muutujad x, y ja z deklareeritakse kolmnurgas kaitstud märksõnaga. See tähendab, et need muutujad on kaitstud, kuid TriangleChild pääseb neile juurde, kuna Triangle on selle emaklass. Muutujate väärtused on määratud TriangleChildis, kuigi need on deklareeritud klassis Triangle.

Muutujatele pääseb juurde alamklassi kaudu ja seejärel arvutatakse kolmnurga pindala.

Järeldus

Andmete peitmine hoiab ära soovimatu juurdepääsu klassi andmetele väljastpoolt. Juurdepääsu muutjaid kasutatakse programmis olevate andmete juurdepääsetavuse ja nähtavuse haldamiseks. Andmete peitmiseks kasutatakse privaatseid, kaitstud ja avaliku juurdepääsu modifikaatoreid. Avaliku märksõna all olevaid andmeid saavad funktsioonid lugeda ka väljaspool klassi. Privaatseks kuulutatud andmeid saab lugeda ainult klassisiseselt, samas kui kaitstud andmetele pääsevad juurde ka vanem ja lapsklass.