Hva er forskjellen mellom private og beskyttede medlemmer av C++-klasser

Hva Er Forskjellen Mellom Private Og Beskyttede Medlemmer Av C Klasser



C++ er et objektorientert programmeringsspråk (OOP) som gir en mekanisme for å kapsle inn data og funksjoner i en enkelt enhet kalt en klasse. En av de essensielle egenskapene til klassen er muligheten til å spesifisere tilgangsnivået for medlemmene. I objektorientert programmering, tilgangsspesifikasjoner brukes til å kontrollere synligheten og tilgjengeligheten til en klasses felt og metoder. Beskyttet , offentlig , og privat tilgangsnivåer er de tre grunnleggende typene tilgangsnivåer i C++.

I denne oppskriften vil vi diskutere forskjellen mellom de to viktigste tilgangsspesifikasjoner s, privat og beskyttet medlemmer av en C++-klasse.

Privat tilgangsspesifikasjon

Private medlemmer er deklarert med søkeordet ' privat ‘. De spesifikasjoner for privat tilgang begrenser tilgangen til klassemedlemmer til kun klassen selv. Kode utenfor klassen kan ikke få tilgang til eller endre et privat medlem. Det betyr at bare metodene som er deklarert i klassen kan få tilgang til og operere på private medlemmer , ikke engang avledede klasser har tilgang private medlemmer . En vanlig bruk av private medlemmer er å sikre riktig drift av en klasse. Private medlemmer brukes til å kapsle inn klassedataene og gi et abstraksjonsnivå til brukerne av klassen.







#include
ved hjelp av navneområde std ;

klasse spiller {

privat :
strengnavn ;
int alder ;

offentlig :
tomrom getPlayer ( )
{
cout << 'Skriv inn navn: ' ;
spiser >> Navn ;
cout << 'Skriv inn alder: ' ;
spiser >> alder ;
}
tomrom showPlayer ( )
{
cout << 'Navn: ' << Navn << endl ;
cout << 'Alder: ' << alder << endl ;
}
} ;

int hoved- ( )
{
spiller pl ;
pl. getPlayer ( ) ;
pl. showPlayer ( ) ;

komme tilbake 0 ;
}

I koden ovenfor bruker vi de offentlige medlemsmetodene getPlayer() og showPlayer() for å få tilgang til de to privat medlemmers Navn og alder . De getPlayer() funksjon får innspill fra brukerne og viser det på skjermen via showPlayer() funksjon.



Produksjon







Spesifiserer for beskyttet tilgang

Beskyttede medlemmer av en klasse kan nås av både de avledede klassene og medlemsfunksjonene til selve klassen. Beskyttede medlemmer brukes til å gi et nivå av tilgang til de avledede klassene uten å eksponere implementeringsdetaljene for omverdenen. Beskyttede medlemmer er deklarert med søkeordet ' beskyttet ' og kolon (:) karakter. Beskyttede medlemmer la en klasse utvides og modifiseres, uten at det går på bekostning av integriteten. En avledet klasse kan bruke beskyttede medlemmer for å avgrense eller tilpasse oppførselen til en basisklasse.

Her er et eksempel på en klasse med beskyttede medlemmer :



#include
bruker navneområde std;

klassespiller {
privat:
strengnavn;
int alder;

beskyttet:
int mål;

offentlig:
void getPlayer ( )
{
cout <> Navn;
cout <> alder;
}
void showPlayer ( )
{
cout << 'Navn: ' << Navn << endl;
cout << 'Alder: ' << alder << endl;
}
} ;

klassespiller1 : offentlig spiller {

privat:
streng land;

offentlig:
void set_goals ( int g )
{
mål = g;
}
void getPlayer1 ( )
{
getPlayer ( ) ;
cout <> land;
}
void showPlayer1 ( )
{
cout << 'mål:' << mål << endl;
showPlayer ( ) ;
cout << 'Land: ' << land << endl;
}
} ;

int main ( )
{
spiller1 pl;
pl.sett_mål ( 101 ) ;
pl.getPlayer1 ( ) ;
pl.showPlayer1 ( ) ;

komme tilbake 0 ;
}

De spiller klasse består av to private medlemmer , Navn og alder , en beskyttet medlem, mål , og privat medlemmer benyttes inne i offentlig medlemsfunksjoner, getPlayer() og showPlayer() . Det er to klasser, spiller og spiller 1 , som begge er basisklasser. En privat medlem, land , og tre offentlig medlem metoder utgjør spiller 1 klasse. Sette mål() brukes til å endre det beskyttede medlemmet mål' verdi. getPlayer1() kaller getPlayer() medlemsfunksjonen til spiller klasse mens du i tillegg henter inn input for landet. I likhet med dette, showPlayer1() kaller showPlayer() medlemsfunksjon og skriver ut mål og land verdier.

Produksjon

Forskjellen mellom private og beskyttede medlemmer av C++-klasser

Her er oppført noen av de viktigste forskjellene mellom Privat og Beskyttet medlemmer av C++-klasser.

1: Omfang og funksjonalitet

Når du vurderer bruken av tilgangsspesifikasjoner, er det avgjørende å tenke nøye gjennom omfang og funksjonalitet av programmet. EN spesifikasjoner for privat tilgang gir det høyeste sikkerhetsnivået og unngår utilsiktet tilgang til variabler og metoder. På den annen side, a spesifikasjoner for beskyttet tilgang tilbyr et mer omfattende utvalg av tilgjengelighet og fleksibilitet, noe som er avgjørende når du planlegger å arve avledede klasser fra en basisklasse.

2: Tilgangsnivå

Hovedforskjellen mellom privat og beskyttede medlemmer er tilgangsnivået de gir. Beskyttet medlemmer kan være tilgjengelige for både klassens avledede klasser og medlemsfunksjoner, men privat medlemmer kan kun oppnås av klassens medlemsfunksjoner.

3: Klassens innkapsling

En annen avgjørende forskjell mellom privat og beskyttet medlemmer er deres rolle i å opprettholde klassens innkapsling. For å isolere dataene og gi klassens brukere et visst nivå av abstraksjon, privat medlemmer er ansatt. Beskyttet medlemmer er ansatt for å administrere arvestrukturen og gi tilgang til basisklassemedlemmer etter avledede klasser.

Siste tanker

Privat og beskyttede medlemmer er de to essensielle tilgangsnivåene i C++-klassen. De privat access specifier gjør klassemedlemmer utilgjengelige for alle eksterne brukere, og den brukes til å holde informasjon privat innenfor klassen. I kontrast, a beskyttet tilgangsspesifikasjoner tillater tilgang til klassemedlemmer kun av avledede klasser, brukes til å gi basisklassefunksjonalitet og tillater modifikasjon uten å endre oppførselen til basisklassen. Tilgangsnivået til klassemedlemmene spiller en avgjørende rolle for å opprettholde klassens innkapsling og gi et tilgangsnivå til brukerne av klassen.