U ovom tekstu raspravljat ćemo o razlici između dva glavna specifikator pristupa s, privatna i zaštićen članovi C++ klase.
Specifikator privatnog pristupa
Privatni članovi deklariraju se pomoću ključne riječi ' privatna ‘. The specifikator privatnog pristupa ograničava pristup članovima klase samo na sam razred. Kod izvan klase ne može pristupiti privatnom članu niti ga mijenjati. To znači da samo metode deklarirane u klasi mogu pristupiti i raditi na privatni članovi , čak ni izvedene klase ne mogu pristupiti privatni članovi . Uobičajena upotreba privatni članovi je osigurati ispravan rad klase. Privatni članovi koriste se za kapsuliranje podataka klase i pružanje razine apstrakcije korisnicima klase.
#include
korištenjem imenski prostor std ;
razreda igrač {
privatna :
naziv niza ;
int dob ;
javnost :
poništiti getPlayer ( )
{
cout << 'Unesite ime: ' ;
jelo >> Ime ;
cout << 'Unesite dob: ' ;
jelo >> dob ;
}
poništiti showPlayer ( )
{
cout << 'Ime: ' << Ime << endl ;
cout << 'Dob: ' << dob << endl ;
}
} ;
int glavni ( )
{
svirač mn ;
pl. getPlayer ( ) ;
pl. showPlayer ( ) ;
povratak 0 ;
}
U gornjem kodu koristimo metode javnih članova getPlayer() i showPlayer() za pristup dvjema privatna članovi Ime i dob . The getPlayer() dobiva unos od korisnika i prikazuje ga na zaslonu putem showPlayer() funkcija.
Izlaz
Specifikator zaštićenog pristupa
Zaštićeni članovi klase mogu pristupiti i izvedene klase i funkcije članice same klase. Zaštićeni članovi koriste se za pružanje razine pristupa izvedenim klasama bez izlaganja detalja implementacije vanjskom svijetu. Zaštićeni članovi deklariraju se pomoću ključne riječi ' zaštićen 'i dvotočka (:) lik. Zaštićeni članovi dopustiti da se klasa proširi i modificira, bez ugrožavanja njezinog integriteta. Izvedena klasa može koristiti zaštićeni članovi doraditi ili prilagoditi ponašanje osnovne klase.
Evo primjera klase sa zaštićeni članovi :
#include
korištenje imenskog prostora std;
klasni igrač {
privatna:
naziv niza;
int dob;
zaštićen:
int ciljevi;
javnost:
void getPlayer ( )
{
cout <> Ime;
cout <> dob;
}
void showPlayer ( )
{
cout << 'Ime: ' << Ime << endl;
cout << 'Dob: ' << dob << endl;
}
} ;
klasa igrač1 : javni igrač {
privatna:
zemlja niza;
javnost:
void set_goals ( int g )
{
golovi = g;
}
void getPlayer1 ( )
{
getPlayer ( ) ;
cout <> zemlja;
}
void showPlayer1 ( )
{
cout << 'ciljevi: ' << ciljevi << endl;
showPlayer ( ) ;
cout << 'Država: ' << zemlja << endl;
}
} ;
int glavni ( )
{
igrač1 pl;
mn.postavi_ciljeve ( 101 ) ;
pl.getPlayer1 ( ) ;
pl.showPlayer1 ( ) ;
povratak 0 ;
}
The igrač razred se sastoji od dva privatni članovi , Ime i dob , jedan zaštićen član, ciljevi , i privatna članovi se koriste unutar javnost članske funkcije, getPlayer() i showPlayer() . Postoje dvije klase, igrač i igrač1 , a obje su osnovne klase. Jedan privatna član, zemlja , i tri javnost član metode čine igrač1 razreda. Postavi ciljeve() koristi se za promjenu zaštićenog člana ciljevi' vrijednost. getPlayer1() naziva getPlayer() članska funkcija igrač klase dok dodatno dohvaća unos za državu. Slično ovome, prikažiPlayer1() naziva showPlayer() funkciju člana i ispisuje ciljevi i zemlja vrijednosti.
Izlaz
Razlika između privatnih i zaštićenih članova C++ klasa
Ovdje su navedene neke od ključnih razlika između Privatna i Zaštićen članovi C++ klasa.
1: Opseg i funkcionalnost
Kada razmatrate korištenje specifikatera pristupa, ključno je pažljivo razmisliti o djelokrug i funkcionalnost programa. A specifikator privatnog pristupa pruža najvišu razinu sigurnosti i izbjegava nenamjeran pristup varijablama i metodama. S druge strane, a specifikator zaštićenog pristupa nudi opsežniji raspon pristupačnosti i fleksibilnosti, što je bitno kada planirate naslijediti izvedene klase od osnovne klase.
2: Razina pristupa
Glavna razlika između privatna i zaštićeni članovi je razina pristupa koju pružaju. Zaštićen članovi mogu biti dostupni i klasama izvedenim iz klase i funkcijama članicama, ali privatna Članovi se mogu dobiti samo pomoću funkcija članova klase.
3: Enkapsulacija klase
Još jedna bitna razlika između privatna i zaštićen članova je njihova uloga u održavanju enkapsulacije klase. Kako bismo izolirali podatke i pružili korisnicima klase određenu razinu apstrakcije, privatna članovi su zaposleni. Zaštićen članovi su zaposleni da upravljaju strukturom nasljeđivanja i daju pristup članovima osnovne klase od strane izvedenih klasa.
Završne misli
Privatna i zaštićeni članovi su dvije bitne razine pristupa u C++ klasi. The privatna specifikator pristupa čini članove klase nedostupnima svim vanjskim korisnicima, a koristi se za čuvanje informacija privatna unutar razreda. Nasuprot tome, a zaštićen specifikator pristupa dopušta pristup članovima klase samo izvedenim klasama, koristi se za pružanje funkcionalnosti osnovne klase i dopušta modifikaciju bez mijenjanja ponašanja osnovne klase. Razina pristupa članova klase igra ključnu ulogu u održavanju enkapsulacije klase i pružanju razine pristupa korisnicima klase.