Rekommenderas, 2024

Redaktionen

Skillnad mellan privat och skyddad i C ++

Det finns tre typer av åtkomstskydd som definieras i C ++ programmeringsspråk för att dölja data. Döljande data är en viktig del av objektorienterad programmering. De privata och skyddade sökorden erbjuder nivån av åtkomstskydd för att dölja data och funktion inom en klass. De privata medlemmarna kan inte vara ärvde medan den skyddade medlemmen kan vara ärvt men i ett begränsat intervall. Dessa specifikationer anger synligheten hos medlemmarna där privat är mer restriktivt än skyddat.

Jämförelsediagram

Grunder för jämförelsePrivatSkyddad
Erfaren egendom till den härledda klassen
Avledad klass kan inte nå privata medlemmar i basklassen.Avledad klass kan få tillgång till basklassskyddade medlemmar.
Tillgänglighet
De privata medlemmarna i klassen är otillgängliga utav klassens räckvidd.De skyddade medlemmarna i klassen är otillgängliga ur klassens räckvidd, förutom att klassen härleddes omedelbart.
Tillgänglig från egen klassJaJa
Tillgänglig från härledd klassNejJa
Tillgänglig från utsidanNejNej

Definition av privat

Klassmedlemmarna som deklareras som privata kan bara hämtas i klassen. Med andra ord kan medlemmarna som deklareras i den privata sektionen av klassen endast nås av klassens vänfunktion och medlemsfunktion. Privata medlemmar är inte tillgängliga för den härledda klassen direkt och är otillgängliga utav klassens räckvidd.

C ++-programmet visar begreppet privata åtkomstspecifika.

 # include using namespace std; klass A {privat: int i; allmänhet: void get () {cout <> i; }}; klass B: offentligt A {public: void show () {i ++; cout << "\ n Ditt inmatade nummer efter inkrementcpp"> # inkluderar namnspace std; klass däggdjur {public: void mammalMethod (void) {cout << "Det kommer under däggdjur kategorin." < 

I ovanstående program skapas ett objekt av barnklassen med namnet "ob" och moderklassens medlemsfunktion kan nås genom kallande barnklassmetod "marine_mammalMethod". Även om modermoden inte kan nås direkt med objektet "ob".

Definition av skyddad

Klassmedlemmarna som deklareras som skyddade i en klass kan endast vara tillgängliga genom klassens medlemsfunktion och vänfunktion. Dessa skyddade medlemmar kan inte nås utanför klassens räckvidd utom barnklassen (omedelbart härledd från den). Den tjänar det begränsade syftet med arvet och ärverger egenskaperna på ett begränsat sätt.

Nedanstående C ++-program illustrerar begreppet skyddade åtkomstspecifikatorer.

 # include using namespace std; klasskonto1 {skyddat: int x, y; // tillgängligt för härledda klasspublikum: tomrumsuppsättning (int a, int b) {x = a; y = b; } tomrumsvisning () {cout < 

I ovanstående exempel ärar klassklassen egenskaperna hos basklassen på grund av att datamedlemmarna är deklarerade som offentliga eller skyddade. Det skulle inte vara möjligt om x och y hade deklarerats som privata i basklassen.

Viktiga skillnader mellan privata och skyddade i C ++

  1. Det skyddade sökordet kan användas för att bygga klassmedlemmar som är privata till sin klass men kan vara ärvda och användas av den härledda klassen. Omvänt är det inte möjligt att använda privata, eftersom privata medlemmar inte kan ärftas direkt till den härledda klassen.
  2. När basklassen är ärvt med hjälp av den privata åtkomstspecifikationen, gör den alla offentliga och skyddade medlemmar i basklassen, de privata medlemmarna i härledd klass. Däremot är detta inte fallet i skyddade åtkomstspecifikatorer.

Slutsats

Privat och skyddad är de accessspecifika som används för att ställa in synligheten för klassen och dess medlemmar annorlunda. Men skyddad är mer flexibel än privat.

Top