Kaip valdyti prieigos modifikatorius C++: narių matomumo supratimas

Kaip Valdyti Prieigos Modifikatorius C Nariu Matomumo Supratimas



Duomenų slėpimas yra viena iš pagrindinių C++ ypatybių, kuri reiškia ribojančią prieigą prie duomenų klasėje, kad būtų išvengta nepageidaujamos prieigos prie klasės duomenų iš išorės. Vadinasi, prieigos modifikatoriai naudojami apibrėžti, kurie klasės nariai yra pasiekiami kuriam išoriniam šaltiniui ir kurie ne.

Pasiekite modifikatorius C++

Prieigos modifikatoriai naudojami klasės duomenų prieinamumui ir matomumui valdyti. Jie nustato tam tikrus apribojimus duomenų nariams, kad jų negalėtų pasiekti išorinės funkcijos. C++ prieigos modifikatoriai yra trijų tipų:

Viešosios prieigos modifikatorius C++

Visi klasės nariai, paskelbti raktažodžiu public, bus prieinami visoms programoje esančioms funkcijoms už klasės ribų. Tiesioginės nario prieigos operatorius (.), taip pat žinomas kaip taško operatorius, gali būti naudojamas su tos konkrečios klasės objektu, kad būtų galima pasiekti šiuos duomenų narius.







Pavyzdys

Viešosios prieigos modifikatorius naudojamas klasei deklaruoti, o jos duomenų narius pasiekia kitos programos funkcijos.



#include

#include

#įtraukti

naudojant vardų sritį std ;
klasės trikampis
{
viešas :
plūdė x , ir , Su ;
tuštuma įvestis ( )
{
cout << 'Įveskite trikampio kraštinę x:-' ;
valgymas >> x ;
cout << 'Įveskite trikampio kraštinę y: -' ;
valgymas >> ir ;
cout << 'Įveskite trikampio kraštinę z:-' ;
valgymas >> Su ;
}
tuštuma Plotas ( )
{
plūdė s = ( x + ir + Su ) / 2 ;
plūdė plotas = kv ( s * ( s - x ) * ( s - ir ) * ( s - Su ) ) ;
cout << \n Trikampio plotas = << plotas ;
}
} ;
tarpt pagrindinis ( )
{
Trikampis t1 ;
t1. įvestis ( ) ;
t1. Plotas ( ) ;
grąžinti 0 ;
}

Trikampis apibrėžiamas kaip klasė, o jos parametrai yra po viešuoju raktiniu žodžiu. Tada trikampio plotas apskaičiuojamas už šios klasės ribų, naudojant viešojo modifikatoriaus duomenų narius.







Tris trikampio kraštines įveda vartotojas, o trikampio plotas apskaičiuojamas pasiekiant reikšmes už klasės ribų, naudojant standartinę formulę, kuri yra 13,4164.

Privačios prieigos modifikatorius C++

Visi klasės nariai, paskelbti raktiniu žodžiu privatus, nebus pasiekiami jokiai programos funkcijai už klasės ribų. Šiuos privačius narius gali skaityti tik tiesioginiai tos pačios klasės nariai. Tačiau draugo funkcijos ir klasės taip pat gali pasiekti duomenis.



Pavyzdys

Deklaruojamos dvi viešosios ir privačios klasės, o programos grąžinama vertė turi būti trikampio plotas.

#include

#include

#įtraukti

naudojant vardų sritį std ;
klasės trikampis
{

privatus :
plūdė x , ir , Su ;
viešas :
tuštuma įvestis ( )

{

cout << 'Įveskite trikampio kraštinę x:-' ;
valgymas >> x ;
cout << 'Įveskite trikampio kraštinę y: -' ;
valgymas >> ir ;
cout << 'Įveskite trikampio kraštinę z:-' ;
valgymas >> Su ;

}
tuštuma Plotas ( )
{

plūdė s = ( x + ir + Su ) / 2 ;
plūdė plotas = kv ( s * ( s - x ) * ( s - ir ) * ( s - Su ) ) ;
cout << \n Trikampio plotas = << plotas ;

}

} ;

tarpt pagrindinis ( )
{
Trikampis t1 ;
t1. įvestis ( ) ;
t1. Plotas ( ) ;
grąžinti 0 ;

}

Main() objektas t1 negali tiesiogiai pasiekti privačios klasės kintamojo float x, y ir z, todėl juo galima manipuliuoti tik netiesiogiai per viešąją funkciją input(), nes ši funkcija gauna x, y ir z reikšmes.

Trikampio plotas gaunamas prisijungus prie privačios klasės, manipuliuojant ja naudojant viešąją klasę. Jei x, y ir z reikšmės nebus deklaruojamos viešoje klasėje, tada jos nebus pasiekiamos main() skaičiavimams.

Apsaugotos prieigos modifikatorius C++

Nariai ir funkcijos pagal saugomą raktinį žodį yra apsaugoti, juos galima pasiekti tik klasėje ir išvestinėje klasėje. Likusios klasės negali pasiekti savo duomenų. Jie yra labai saugomi.

Pavyzdys

Apsaugotus duomenis pagal apsaugotą raktinį žodį gali nuskaityti tik klasė ir klasė, kuri yra išvestinė klasė. Šis pavyzdys yra praktinis apsaugotos prieigos modifikatoriaus demonstravimas.

#include

#include

#įtraukti

naudojant vardų sritį std ;
//tėvų klasė
klasės trikampis
{

apsaugotas :
plūdė x , ir , Su ;
} ;
//vaikų klasė
klasės TrikampisVaikas : viešasis trikampis {
viešas :
tuštuma įvestis ( )

{

cout << 'Įveskite trikampio kraštinę x:-' ;
valgymas >> x ;
cout << 'Įveskite trikampio kraštinę y: -' ;
valgymas >> ir ;
cout << 'Įveskite trikampio kraštinę z:-' ;
valgymas >> Su ;

}
tuštuma Plotas ( )
{
plūdė s = ( x + ir + Su ) / 2 ;
plūdė plotas = kv ( s * ( s - x ) * ( s - ir ) * ( s - Su ) ) ;
cout << \n Trikampio plotas = << plotas ;

}
} ;

tarpt pagrindinis ( )

{
TrikampisVaikas Vaikas ;
Vaikas. įvestis ( ) ;
Vaikas. Plotas ( ) ;
grąžinti 0 ;

}

TriangleChild yra paveldima klasė, kilusi iš klasės Triangle. Kintamieji x, y ir z yra deklaruojami trikampyje su apsaugotu raktiniu žodžiu. Tai reiškia, kad šie kintamieji yra apsaugoti, tačiau juos gali pasiekti „TriangleChild“, nes „Triangle“ yra pagrindinė jo klasė. Kintamųjų reikšmės buvo priskirtos TriangleChild, nors jos deklaruotos Triangle klasėje.

Kintamieji pasiekiami per antrinę klasę, tada apskaičiuojamas trikampio plotas.

Išvada

Duomenų slėpimas apsaugo nuo nepageidaujamos prieigos prie klasės duomenų iš išorės. Prieigos modifikatoriai naudojami duomenų prieinamumui ir matomumui programoje valdyti. Duomenims paslėpti naudojami privatūs, saugomi ir viešos prieigos modifikatoriai. Duomenis pagal viešąjį raktinį žodį gali nuskaityti funkcijos ir iš išorės. Duomenys, paskelbti kaip privatūs, gali būti skaitomi tik klasėje, o apsaugotus duomenis gali pasiekti ir tėvai, ir vaikų klasė.