Kuo skiriasi privatūs ir saugomi C++ klasių nariai?

Kuo Skiriasi Privatus Ir Saugomi C Klasiu Nariai



C++ yra objektinio programavimo (OOP) kalba, suteikianti mechanizmą duomenims ir funkcijoms sujungti į vieną objektą, vadinamą klase. Viena iš esminių klasės savybių yra galimybė nurodyti savo narių prieigos lygį. Objektinis programavimas, prieigos specifikatoriai naudojami klasės laukų ir metodų matomumui ir prieinamumui valdyti. Apsaugotas , viešas , ir privatus prieigos lygiai yra trys pagrindiniai C++ prieigos lygių tipai.

Š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į.