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 å innkapsler data og funksjoner i en enkelt enhet kalt en klasse. En av de essensielle funksjonene i klassen er muligheten til å spesifisere tilgangsnivået for medlemmene. I objektorientert programmering, tilgangspesifikasjoner 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 skrivingen vil vi diskutere forskjellen mellom de to hoved Tilgangspesifikators, privat og beskyttet Medlemmer av en C ++ -klasse.

Privat tilgangspesifikator

Private medlemmer er erklært ved hjelp av nøkkelordet 'privat'. De Privat tilgangspesifikator begrenser tilgang til klassemedlemmer til bare klassen selv. Kode utenfor klassen kan ikke få tilgang til eller endre et privat medlem. Det betyr at bare metodene som er erklært i klassen kan få tilgang til og operere på private medlemmer, ikke engang avledede klasser kan få tilgang til private medlemmer. En vanlig bruk av private medlemmer er å sikre riktig drift av en klasse. Private medlemmer brukes til å innkapsle klassedataene og gi et abstraksjonsnivå til brukerne av klassen.

#inkludere
ved hjelp av navneområdet STD;
Klassespiller
privat:
strengnavn;
int alder;
offentlig:
void getPlayer ()

cout << "Enter name: ";
Cin >> Navn;
cout << "Enter age: ";
Cin >> Alder;

void Showplayer ()

cout << "Name: " << name << endl;
cout << "Age: " << age << endl;

;
int main ()

Player PL;
pl.getPlayer ();
pl.Showplayer ();
return 0;

I koden over bruker vi de offentlige medlemmetodene getPlayer () og Showplayer () for å få tilgang til de to privat medlemmer Navn og alder. De getPlayer () Funksjonen får inngangen fra brukerne og viser den på skjermen via Showplayer () funksjon.

Produksjon

Beskyttet tilgangsspesifikator

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 å avsløre implementeringsdetaljene for omverdenen. Beskyttede medlemmer er erklært ved hjelp av nøkkelordet 'beskyttet' og kolon (:) karakter. Beskyttede medlemmer La en klasse utvides og modifiseres, uten at det går ut over dens integritet. En avledet klasse kan bruke beskyttede medlemmer For å avgrense eller tilpasse oppførselen til en baseklasse.

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

#inkludere
ved hjelp av navneområdet STD;
Klassespiller
privat:
strengnavn;
int alder;
beskyttet:
int mål;
offentlig:
void getPlayer ()

cout -navn;
cout alder;

void Showplayer ()

cout << "Name: " << name << endl;
cout << "Age: " << age << endl;

;
Klassespiller1: offentlig spiller
privat:
Strengland;
offentlig:
void set_goals (int g)

mål = g;

void getPlayer1 ()

getPlayer ();
Cout Country;

void showplayer1 ()

cout << "goals: " << goals << endl;
Showplayer ();
cout << "Country: " << country << endl;

;
int main ()

Player1 PL;
pl.set_goals (101);
pl.getPlayer1 ();
pl.Showplayer1 ();
retur 0;

De spiller Klasse består av to private medlemmer, Navn og alder, en beskyttet medlem, mål, og privat Medlemmene brukes inne i offentlig medlemsfunksjoner, getPlayer () og Showplayer (). Det er to klasser, spiller og Player1, som begge er baseklasser. En privat medlem, land, og tre offentlig Medlemmetoder utgjør Player1 klasse. Sette mål() brukes til å endre det beskyttede medlemmet mål ' verdi. getPlayer1 () Ringer getPlayer () medlemsfunksjonen til spiller klasse mens du i tillegg henter innspillet til landet. Ligner på dette, Showplayer1 () Ringer Showplayer () medlemsfunksjon og skriver ut mål og land verdier.

Produksjon

Forskjell mellom private og beskyttede medlemmer av C ++ klasser

Her er listet opp noen av de viktigste forskjellene mellom Privat og Beskyttet Medlemmer av C ++ klasser.

1: Omfang og funksjonalitet

Når du vurderer bruk av tilgangspesifikasjoner, er det avgjørende å tenke nøye på omfang og funksjonalitet av programmet. EN Privat tilgangspesifikator Gir det høyeste sikkerhetsnivået og unngår utilsiktet tilgang til variabler og metoder. På den annen side, en beskyttet tilgangsspesifikator tilbyr et mer omfattende utvalg av tilgjengelighet og fleksibilitet, noe som er viktig når du planlegger å arve avledede klasser fra en baseklasse.

2: tilgangsnivå

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

3: Klassens innkapsling

Nok en avgjørende forskjell mellom privat og beskyttet Medlemmene er deres rolle i å opprettholde klassens innkapsling. Å isolere dataene og gi klassens brukere et nivå av abstraksjon, privat Medlemmene er ansatt. Beskyttet Medlemmene er ansatt for å administrere arverestrukturen og gi tilgang til baseklassemedlemmer etter avledede klasser.

Siste tanker

Privat og beskyttede medlemmer er de to viktige tilgangsnivåene i C ++ -klassen. De privat Access Specifier gjør klassemedlemmer utilgjengelige for alle eksterne brukere, og det brukes til å holde informasjon privat innenfor klassen. I kontrast til en beskyttet Access Specifier gir tilgang til klassemedlemmer bare av avledede klasser, brukes til å gi baseklassefunksjonalitet og tillater modifisering uten å endre oppførselen til baseklassen. Tilgangsnivået til klassemedlemmene spiller en avgjørende rolle i å opprettholde klassens innkapsling og gi et nivå av tilgang til brukerne av klassen.