Forskjell mellom privat og beskyttet i C ++

Forskjell mellom privat og beskyttet i C ++
Konseptet med innkapsling og skjul av data er mye brukt i objektorienterte programmeringsspråk som C++. Å kjenne disse konseptene sikrer sikkerheten og integriteten til data i et program. I C ++ brukes to tilgangspesifikasjoner - private og beskyttede - til å håndheve disse konseptene. Denne artikkelen dekker forskjellen mellom privat og beskyttet i C ++ og hvordan de påvirker synligheten og tilgjengeligheten til klassemedlemmer.

Innholdsfortegnelse

  • Hva er tilgangspesifikasjoner i C++
  • Hva er privat i C++
  • Hva er beskyttet i C++
  • Forskjell mellom privat og beskyttet i C++
  • Eksempler på private og beskyttede tilgangspesifikasjoner
  • Konklusjon

Hva er tilgangspesifikasjoner i C++

I C ++ er tilgangspesifikasjoner reserverte nøkkelord som tjener formålet med å bestemme synligheten og tilgjengeligheten til medlemmene i en klasse. Disse nøkkelordene brukes til å begrense eller tillate tilgang til forskjellige klassemedlemmer i et program.

Tilgangspesifikasjoner bestemmer hvor et klassemedlem kan nås. Disse spesifikasjonene tillater C ++ -kode å få tilgang til et klassemedlem fra eller utenfor en klasse. De lar også avledede klasser få tilgang til hovedklassemedlemmene.

I C ++ kan tilgangspesifikasjoner kategoriseres i tre forskjellige spesifikasjoner:

  • privat
  • beskyttet
  • offentlig

Disse spesifikasjonene kontrollerer synligheten til klassemedlemmer, som avgjør hvor og av hvem de kan nås i programmet.

Hva er privat i C++

Privat er en tilgangspesifikator i C ++ som begrenser synligheten og tilgjengeligheten til klassemedlemmer til bare klasse i seg selv. Medlemmer som er definert som private er ikke tilgjengelige fra utenfor klassen eller dens avledede klasser. De private medlemmene er skjult for andre klasser, noe som forhindrer dem i å endre eller få tilgang til dataene.

Hva er beskyttet i C++

Beskyttet er en tilgangspesifikator i C ++ som begrenser synligheten og tilgjengeligheten til klassemedlemmer til klasse i seg selv og dets avledede klasser. Medlemmer definert som beskyttet kan nås fra innsiden av en klasse eller dens avledede klasser, men ikke utenfor klassen. De beskyttede medlemmene er også skjult for andre klasser, noe som forhindrer dem i å endre eller få tilgang til dataene.

Forskjell mellom privat og beskyttet i C++

Hovedforskjellen mellom privat og beskyttet i C ++ er nivået av tilgjengeligheten til klassemedlemmer. Tilgang til private medlemmer er begrenset i klassen, mens beskyttede medlemmer også er tilgjengelige fra avledede klasser.

En annen forskjell er at private medlemmer er helt skjult for andre klasser, mens beskyttede medlemmer delvis er skjult. Dette betyr at avledede klasser kan få tilgang til beskyttede medlemmer, men ikke endre dem direkte. Derimot kan ikke private medlemmer få tilgang til eller endres av noen annen klasse.

Eksempler på private og beskyttede tilgangspesifikasjoner

For å demonstrere konseptet med tilgangspesifikasjoner i objektorientert programmering, er det nyttig å gi eksempler på private og beskyttede tilgangspesifikasjoner. La oss se nærmere på hvordan private og beskyttede tilgangspesifikasjoner fungerer og noen eksempler på hvordan de kan brukes.

Eksempel på privat klasse i C++

Den private tilgangsspesifikatoren begrenser synligheten til et klassemedlem i selve klassen. Nedenfor koden forklarer den private klassen i et C ++ -program:

#inkludere
ved hjelp av navneområdet STD;
klasseperson
// Private medlemmer
privat:
streng fullnavn;
Int Yearsold;
// Offentlige medlemmer
offentlig:
tomrom getPersonInfo ()

cout << "Enter full name: ";
getline (cin, fullname);
cout << "Enter age in years: ";
Cin >> Årsolding;

void displayPersonInfo ()

cout << "Name: " << fullName << endl;
cout << "Age: " << yearsOld << endl;

;
// hovedfunksjon
int main ()

// Opprette objekt
Person person;
person.getPersonInfo ();
person.displayPersonInfo ();
retur 0;

Dette C ++ -programmet definerer en klasseperson med to private medlemsvariabler fullt navn og år gammel, og to offentlige medlemsfunksjoner getPersonInfo () og DisplayPersonInfo ().

GetPersonInfo () -funksjonen ber brukeren om å oppgi personens fulle navn og alder. Etter det lagrer dem i henholdsvis de private medlemsvariablene fullnavn og årsold.

DisplayPersonInfo () -funksjonen skriver ganske enkelt ut personens navn og alder til konsollen.

I Main () -funksjonen oppretter vi en objektperson i personklassen, og kaller dens getPersonInfo () og DisplayPersonInfo () -funksjoner for å be brukeren legge inn en persons informasjon og deretter vise den på konsollen.

Beskyttet klasseeksempel i C++

Den beskyttede tilgangspesifikatoren begrenser synligheten til et klassemedlem til i klassen og dets underklasser. La oss ta et eksempel som forklarer beskyttede klasser i et C ++ -program.

#inkludere
ved hjelp av navneområdet STD;
// baseklasse
klasseperson
// Private medlemmer
privat:
streng fullnavn;
int alder;
// beskyttet medlem
beskyttet:
int idnumber;
// Offentlige medlemmer
offentlig:
tomrom getPersonInfo ()

cout << "Enter full name: ";
getline (cin, fullname);
cout << "Enter age: ";
Cin >> Alder;

void displayPersonInfo ()

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

;
// avledet klasse
Klasseelev: offentlig person
// Private medlemmer
privat:
streng by;
// Offentlige medlemmer
offentlig:
void setid (int id)

// Her er idnumber det beskyttede medlemmet av personen
// klasse, det er tilgjengelig her
idNumber = id;

tomrom getStudentInfo ()

// Ringer getPersonInfo () for å lese grunnleggende detaljer
getPersonInfo ();
// Input City
cout << "Enter city: ";
cin >> by;

void displayStudentInfo ()

// Vis ID -nummer
cout << "ID Number: " << idNumber << endl;
// Ring DisplayPersonInfo () for å skrive ut grunnleggende detaljer
displayPersonInfo ();
// Visning av by også
cout << "City: " << city << endl;

;
// hovedfunksjon
int main ()

// Opprette objekt
Studentstudent;
// Angi ID -nummer
student.Setid (12345);
// Få alle detaljer
student.getStudentInfo ();
// Skrive ut alle detaljer
student.displayStudentInfo ();
retur 0;

Her i denne koden er baseklassen person med private medlemmer fullt navn og alder, og et beskyttet medlem ID-nummer. Den avledede klassen er student med en privat medlemsby og offentlige medlemsfunksjoner Setid (), GetStudentInfo () og DisplayStudentInfo ().

Setid () -funksjonen angir ID -nummeret, som definerer en beskyttet medlem av baseklassen. GetStudentInfo () -funksjonen leser de grunnleggende detaljene til studenten som fullt navn, alder og byen de bor i.

De DisplayStudentInfo () Funksjon skriver ut alle detaljene til studenten som inkluderer ID -nummer, fullt navn, alder og by.

Konklusjon

Private og beskyttede tilgangspesifikasjoner i objektorientert programmering sikrer innkapsling og skjul av data. Private medlemmer er helt skjult for andre klasser, mens beskyttede medlemmer er delvis skjult og kan nås av avledede klasser. Valget mellom å bruke private og beskyttede tilgangspesifikasjoner avhenger av design og implementering av klassen. Les artikkelen for å forstå detaljene om både private og beskyttede tilgangspesifikasjoner.