Šiame įraše aptarsime skirtumą tarp dviejų pagrindinių prieigos specifikatorius s, privatus ir apsaugotas C++ klasės nariai.
Privačios prieigos specifikatorius
Privatūs nariai yra deklaruojami naudojant raktinį žodį ' privatus ‘. The privačios prieigos specifikatorius apriboja prieigą prie klasės narių tik pačiai klasei. Už klasės ribų esantis kodas negali pasiekti ar pakeisti privataus nario. Tai reiškia, kad tik klasėje deklaruoti metodai gali pasiekti ir veikti privatūs nariai , net išvestinės klasės negali pasiekti privatūs nariai . Dažnas naudojimas privatūs nariai yra užtikrinti tinkamą klasės veikimą. Privatūs nariai yra naudojami klasės duomenims įterpti ir klasės vartotojams suteikti abstrakcijos lygį.
#include
naudojant vardų erdvė std ;
klasė žaidėjas {
privatus :
eilutės pavadinimas ;
tarpt amžiaus ;
viešas :
tuštuma getPlayer ( )
{
cout << 'Įveskite vardą: ' ;
valgymas >> vardas ;
cout << 'Įveskite amžių:' ;
valgymas >> amžiaus ;
}
tuštuma showPlayer ( )
{
cout << 'Vardas: ' << vardas << endl ;
cout << 'Amžius:' << amžiaus << endl ;
}
} ;
tarpt pagrindinis ( )
{
žaidėjas pl ;
pl. getPlayer ( ) ;
pl. showPlayer ( ) ;
grąžinti 0 ;
}
Aukščiau pateiktame kode naudojame viešojo nario metodus getPlayer () ir showPlayer() prieiti prie dviejų privatus nariai' vardas ir amžiaus . The getPlayer () funkcija gauna įvestį iš vartotojų ir rodo ją ekrane per showPlayer() funkcija.
Išvestis
Apsaugotos prieigos specifikatorius
Apsaugoti nariai klasės gali būti pasiekiamos tiek išvestinėmis klasėmis, tiek pačios klasės narių funkcijomis. Apsaugoti nariai yra naudojami siekiant suteikti prieigą prie išvestinių klasių, neatskleidžiant įgyvendinimo detalių išoriniam pasauliui. Apsaugoti nariai yra deklaruojami naudojant raktinį žodį ' apsaugotas ' ir dvitaškis (:) charakteris. Apsaugoti nariai leidžia išplėsti ir modifikuoti klasę, nepažeidžiant jos vientisumo. Išvestinė klasė gali būti naudojama saugomi nariai patobulinti arba pritaikyti pagrindinės klasės elgseną.
Čia yra klasės su saugomi nariai :
#include
naudojant vardų sritį std;
klasės žaidėjas {
privatus:
eilutės pavadinimas;
int amžius;
apsaugotas:
int tikslai;
viešas:
negalioja getPlayer ( )
{
cout <> vardas;
cout <> amžius;
}
tuščias showPlayer ( )
{
cout << 'Vardas: ' << vardas << endl;
cout << 'Amžius:' << amžiaus << endl;
}
} ;
klasės žaidėjas1 : viešasis žaidėjas {
privatus:
stygų šalis;
vieša:
negalioja nustatyti_tikslai ( tarpt g )
{
tikslai = g;
}
negalioja getPlayer1 ( )
{
getPlayer ( ) ;
cout <> Šalis;
}
tuščias showPlayer1 ( )
{
cout << 'tikslai:' << tikslus << endl;
showPlayer ( ) ;
cout << 'Šalis: ' << Šalis << endl;
}
} ;
tarp pagrindinis ( )
{
žaidėjas1 pl;
pl.set_goals ( 101 ) ;
pl.getPlayer1 ( ) ;
pl.showPlayer1 ( ) ;
grąžinti 0 ;
}
The žaidėjas klasė susideda iš dviejų privatūs nariai , vardas ir amžiaus , vienas apsaugotas narys, tikslus , ir privatus nariai naudojami viduje viešas narių funkcijos, getPlayer () ir showPlayer() . Yra dvi klasės, žaidėjas ir žaidėjas 1 , kurios abi yra bazinės klasės. Vienas privatus narys, Šalis , ir trys viešas narių metodai sudaro žaidėjas 1 klasė. Nusistatyti tikslus() naudojamas saugomam nariui pakeisti tikslai' vertė. getPlayer1 () skambina getPlayer () nario funkcija žaidėjas klasę, o papildomai nuskaitant šalies įvestį. Panašus į šį, showPlayer1() skambina showPlayer() nario funkciją ir išspausdina tikslus ir Šalis vertybes.
Išvestis
Skirtumas tarp privačių ir apsaugotų C++ klasių narių
Čia pateikiami kai kurie pagrindiniai skirtumai tarp Privatus ir Apsaugotas C++ klasių nariai.
1: Taikymo sritis ir funkcionalumas
Svarstant prieigos specifikatorių naudojimą, labai svarbu gerai apgalvoti apimtis ir funkcionalumą programos. A privačios prieigos specifikatorius užtikrina aukščiausią saugumo lygį ir išvengia netyčinės prieigos prie kintamųjų ir metodų. Kita vertus, a apsaugotos prieigos specifikatorius siūlo platesnį prieinamumo ir lankstumo spektrą, kuris yra būtinas planuojant paveldėti išvestines klases iš bazinės klasės.
2: prieigos lygis
Pagrindinis skirtumas tarp privatus ir saugomi nariai yra jų teikiamos prieigos lygis. Apsaugotas nariai gali būti pasiekiami naudojant išvestines klasės klases ir narių funkcijas, tačiau privatus narius gali gauti tik klasės narių funkcijos.
3: klasės inkapsuliacija
Kitas esminis skirtumas tarp privatus ir apsaugotas nariai yra jų vaidmuo palaikant klasės inkapsuliaciją. Norėdami izoliuoti duomenis ir suteikti klasės vartotojams tam tikrą abstrakcijos lygį, privatus nariai dirba. Apsaugotas nariai naudojami paveldėjimo struktūrai valdyti ir suteikti prieigą prie bazinės klasės narių pagal išvestines klases.
Paskutinės mintys
Privatus ir saugomi nariai yra du pagrindiniai prieigos lygiai C++ klasėje. The privatus Prieigos specifikatorius daro klasės narius neprieinamus visiems išoriniams vartotojams ir naudojamas informacijai saugoti privatus klasės viduje. Priešingai, a apsaugotas prieigos specifikatorius leidžia pasiekti klasės narius tik išvestinėms klasėms, yra naudojamas bazinės klasės funkcionalumui užtikrinti ir leidžia modifikuoti nekeičiant pagrindinės klasės elgesio. Klasės narių prieigos lygis vaidina lemiamą vaidmenį palaikant klasės inkapsuliaciją ir suteikiant klasės naudotojams prieigos lygį.