Anbefalt, 2021

Redaksjonens

Forskjellen mellom privat og beskyttet i C ++

Det finnes tre typer tilgangsbeskyttelse definert i C ++ programmeringsspråk for å skjule dataene. Data gjemmer seg er en viktig del av objektorientert programmering. De private og beskyttede søkeordene tilbyr nivået av tilgangsbeskyttelse for å skjule dataene og funksjonen i en klasse. De private medlemmene kan ikke arves mens det beskyttede medlemmet kan arves, men i et begrenset område. Disse spesifiseringene viser synligheten til medlemmene hvor privat er mer restriktive enn beskyttet.

Sammenligningstabel

Grunnlag for sammenligningPrivatbeskyttet
Erverver eiendom til den avledede klassen
Avledet klasse kan ikke få tilgang til private medlemmer av grunnklasse.Avledet klasse kan få tilgang til klasseklassifiserte medlemmer.
tilgjengelighet
De private medlemmene av klassen er utilgjengelige utenom klassens omfang.De beskyttede medlemmene av klassen er utilgjengelige utenom klassens omfang, med unntak av klassen avledet umiddelbart.
Tilgjengelig fra egen klasseJaJa
Tilgjengelig fra avledet klasseNeiJa
Tilgjengelig fra utsidenNeiNei

Definisjon av privat

Klassemedlemmene som erklæres som private, kan bare hentes inn i klassen. Med andre ord kan medlemmene som er erklært i den private delen av klassen, kun få tilgang til vennens funksjon og medlemsfunksjon i klassen. Private medlemmer er ikke tilgjengelig for den avledede klassen direkte og er utilgjengelige utenom klassens omfang.

C ++-programmet viser konseptet med private tilgangspesifikasjoner.

 #include bruker navneområde std; klasse A {privat: int i; offentlig: void get () {cout <> i; }}; klasse B: offentlig A {public: void show () {i ++; cout << "\ n Ditt angitte nummer etter incrementcpp"> # inkluderer bruk av navneområde std; klasse pattedyr {offentlig: void mammalMethod (void) {cout << «Det kommer under pattedyr kategorien.» < 

I det ovennevnte programmet blir ett objekt av barneklassen opprettet med navnet "ob", og medlemmet funksjonen til foreldreklassen kan nås gjennom kallet barn klasse metode "marine_mammalMethod". Selv om foreldremetoden ikke kan nås direkte med objektet "ob".

Definisjon av Beskyttet

Klassemedlemmene erklært som beskyttet i en klasse, kan kun være tilgjengelige gjennom medlemsfunksjonen og vennens funksjon i klassen. Disse beskyttede medlemmene kan ikke nås utenom klassens omfang, bortsett fra barneklassen (umiddelbart hentet fra den). Den tjener det begrensede formål i arv og arver eiendommene på en begrenset måte.

Det nedenfor oppgitte C ++-programmet illustrerer begrepet beskyttede tilgangsspesifikatorer.

 #include bruker navneområde std; klassekonto1 {beskyttet: int x, y; // tilgjengelig for avledet klasse offentlig: tomt sett (int a, int b) {x = a; y = b; } tomt show () {cout < 

I det ovennevnte eksemplet arver klasseklasse egenskapene til baseklassen fordi datamedlemmene er erklært som offentlig eller beskyttet. Det ville ikke være mulig dersom x og y hadde blitt erklært som privat i grunnklassen.

Viktige forskjeller mellom privat og beskyttet i C ++

  1. Det beskyttede søkeordet kan brukes til å bygge klassemedlemmer som er private i sin klasse, men kan arves og brukes av den avledede klassen. Omvendt er dette ikke mulig når du bruker privat, fordi private medlemmer ikke kan arves direkte til den avledede klassen.
  2. Når grunnklassen er arvet ved hjelp av den private tilgangsspesifikatoren, gjør den alle offentlige og beskyttede medlemmer av grunnklassen, de private medlemmene av avledet klasse. I motsetning til dette er ikke tilfellet i beskyttede tilgangspesifikatorer.

Konklusjon

Privat og beskyttet er tilgangsspesifikatorene som brukes til å sette synligheten til klassen og dens medlemmer annerledes. Imidlertid er beskyttet mer fleksibelt enn privat.

Top