Jämförelsediagram
Grunder för jämförelse | Privat | Skyddad |
---|---|---|
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 klass | Ja | Ja |
Tillgänglig från härledd klass | Nej | Ja |
Tillgänglig från utsidan | Nej | Nej |
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 ++
- 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.
- 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.