Aký je rozdiel medzi súkromnými a chránenými členmi tried C++

Aky Je Rozdiel Medzi Sukromnymi A Chranenymi Clenmi Tried C



C++ je objektovo orientovaný programovací jazyk (OOP), ktorý poskytuje mechanizmus na zapuzdrenie údajov a funkcií do jedinej entity nazývanej trieda. Jednou zo základných vlastností triedy je možnosť špecifikovať úroveň prístupu pre jej členov. V objektovo-orientovanom programovaní, špecifikátory prístupu sa používajú na ovládanie viditeľnosti a dostupnosti polí a metód triedy. Chránené , verejnosti , a súkromné úrovne prístupu sú tri základné typy úrovní prístupu v C++.

V tomto príspevku budeme diskutovať o rozdieloch medzi týmito dvoma hlavnými špecifikátor prístupu s, súkromné a chránené členovia triedy C++.

Špecifikátor súkromného prístupu

Súkromní členovia sú deklarované pomocou kľúčového slova „ súkromné ‘. The špecifikátor súkromného prístupu obmedzuje prístup k členom triedy iba na samotnú triedu. Kód mimo triedy nemá prístup k súkromnému členovi ani ho nemôže zmeniť. To znamená, že iba metódy deklarované v triede môžu pristupovať a fungovať na ňom súkromní členovia , nemajú prístup ani odvodené triedy súkromní členovia . Bežné použitie súkromní členovia je zabezpečiť správne fungovanie triedy. Súkromní členovia sa používajú na zapuzdrenie údajov triedy a poskytujú používateľom triedy úroveň abstrakcie.







#include
použitím menný priestor std ;

trieda hráč {

súkromné :
názov reťazca ;
int Vek ;

verejnosti :
neplatné getPlayer ( )
{
cout << 'Zadaj meno: ' ;
jedenie >> názov ;
cout << 'Zadajte vek: ' ;
jedenie >> Vek ;
}
neplatné showPlayer ( )
{
cout << 'Názov: ' << názov << endl ;
cout << 'Vek: ' << Vek << endl ;
}
} ;

int Hlavná ( )
{
hráč pl ;
pl. getPlayer ( ) ;
pl. showPlayer ( ) ;

vrátiť 0 ;
}

Vo vyššie uvedenom kóde používame metódy verejných členov getPlayer() a showPlayer() na prístup k dvom súkromné členovia názov a Vek . The getPlayer() funkcia získava vstup od používateľov a zobrazuje ho na obrazovke prostredníctvom showPlayer() funkciu.



Výkon







Špecifikátor chráneného prístupu

Chránení členovia triedy môžu pristupovať ako odvodené triedy, tak aj členské funkcie samotnej triedy. Chránení členovia sa používajú na poskytnutie úrovne prístupu k odvodeným triedam bez toho, aby boli detaily implementácie vystavené vonkajšiemu svetu. Chránení členovia sú deklarované pomocou kľúčového slova „ chránené “ a dvojbodka (:) charakter. Chránení členovia umožňujú rozšírenie a úpravu triedy bez ohrozenia jej integrity. Môže použiť odvodená trieda chránených členov na spresnenie alebo prispôsobenie správania základnej triedy.

Tu je príklad triedy s chránených členov :



#include
pomocou menného priestoru std;

hráč triedy {
súkromné:
názov reťazca;
int vek;

chránené:
int ciele;

verejné:
void getPlayer ( )
{
cout <> názov;
cout <> Vek;
}
void showPlayer ( )
{
cout << 'Názov: ' << názov << endl;
cout << 'Vek: ' << Vek << endl;
}
} ;

class player1 : verejný hráč {

súkromné:
strunová krajina;

verejné:
void set_goals ( int g )
{
ciele = g;
}
void getPlayer1 ( )
{
getPlayer ( ) ;
cout <> krajina;
}
void showPlayer1 ( )
{
cout << 'Ciele: ' << Ciele << endl;
showPlayer ( ) ;
cout << 'Krajina: ' << krajina << endl;
}
} ;

int main ( )
{
hráč1 pl;
pl.set_goals ( 101 ) ;
pl.getPlayer1 ( ) ;
pl.showPlayer1 ( ) ;

vrátiť 0 ;
}

The hráč trieda pozostáva z dvoch súkromní členovia , názov a Vek , jeden chránené člen, Ciele , a súkromné členovia sa využívajú vo vnútri verejnosti členské funkcie, getPlayer() a showPlayer() . Existujú dve triedy, hráč a hráč1 , pričom obe sú základnými triedami. Jeden súkromné člen, krajina a tri verejnosti členské metódy tvoria hráč1 trieda. Stanoviť ciele() sa používa na zmenu chráneného člena Ciele' hodnotu. getPlayer1() volá getPlayer() členská funkcia v hráč triede pri dodatočnom získavaní vstupu pre krajinu. podobné tomuto, showPlayer1() volá showPlayer() členskú funkciu a vytlačí Ciele a krajina hodnoty.

Výkon

Rozdiel medzi súkromnými a chránenými členmi tried C++

Tu sú uvedené niektoré z kľúčových rozdielov medzi nimi Súkromné a Chránené členovia tried C++.

1: Rozsah a funkčnosť

Pri zvažovaní použitia špecifikátorov prístupu je dôležité dôkladne premyslieť rozsah a funkčnosť programu. A špecifikátor súkromného prístupu poskytuje najvyššiu úroveň zabezpečenia a zabraňuje neúmyselnému prístupu k premenným a metódam. Na druhej strane a špecifikátor chráneného prístupu ponúka širší rozsah dostupnosti a flexibility, čo je nevyhnutné pri plánovaní dedenia odvodených tried zo základnej triedy.

2: Úroveň prístupu

Hlavný rozdiel medzi súkromné a chránených členov je úroveň prístupu, ktorý poskytujú. Chránené členovia môžu byť prístupní pre triedy odvodené z triedy aj pre členské funkcie, ale súkromné členov môžu získať iba členské funkcie triedy.

3: Zapuzdrenie triedy

Ďalší zásadný rozdiel medzi súkromné a chránené členov je ich úlohou pri udržiavaní zapuzdrenia triedy. Ak chcete izolovať údaje a poskytnúť používateľom triedy určitú úroveň abstrakcie, súkromné členovia sú zamestnaní. Chránené členovia sa používajú na správu štruktúry dedičstva a poskytujú prístup k členom základnej triedy odvodenými triedami.

Záverečné myšlienky

Súkromné a chránených členov sú dve základné úrovne prístupu v triede C++. The súkromné špecifikátor prístupu zneprístupňuje členov triedy všetkým externým používateľom a používa sa na uchovávanie informácií súkromné v rámci triedy. Naproti tomu a chránené špecifikátor prístupu umožňuje prístup k členom triedy iba odvodeným triedam, používa sa na poskytovanie funkčnosti základnej triedy a umožňuje modifikáciu bez zmeny správania základnej triedy. Úroveň prístupu členov triedy hrá kľúčovú úlohu pri udržiavaní zapuzdrenia triedy a poskytovaní úrovne prístupu používateľom triedy.