Jaký je rozdíl mezi soukromými a chráněnými členy tříd C++

Jaky Je Rozdil Mezi Soukromymi A Chranenymi Cleny Trid C



C++ je objektově orientovaný programovací jazyk (OOP), který poskytuje mechanismus pro zapouzdření dat a funkcí do jediné entity zvané třída. Jednou ze základních vlastností třídy je možnost určit úroveň přístupu pro její členy. V objektově orientovaném programování, specifikátory přístupu se používají k ovládání viditelnosti a dostupnosti polí a metod třídy. Chráněný , veřejnost , a soukromé úrovně přístupu jsou tři základní typy úrovní přístupu v C++.

V tomto zápisu budeme diskutovat o rozdílu mezi těmito dvěma hlavními specifikátor přístupu s, soukromé a chráněný členy třídy C++.

Specifikátor soukromého přístupu

Soukromí členové jsou deklarovány pomocí klíčového slova „ soukromé ‘. The soukromý specifikátor přístupu omezuje přístup členům třídy pouze na samotnou třídu. Kód mimo třídu nemůže přistupovat k soukromému členovi ani jej měnit. To znamená, že pouze metody deklarované ve třídě mohou přistupovat a pracovat na ní soukromí členové , nemají přístup ani odvozené třídy soukromí členové . Běžné použití soukromí členové je zajistit správné fungování třídy. Soukromí členové se používají k zapouzdření dat třídy a poskytují úroveň abstrakce uživatelům třídy.







#include
použitím jmenný prostor std ;

třída hráč {

soukromé :
název řetězce ;
int stáří ;

veřejnost :
prázdnota getPlayer ( )
{
cout << 'Napište jméno: ' ;
jíst >> název ;
cout << 'Zadejte věk:' ;
jíst >> stáří ;
}
prázdnota showPlayer ( )
{
cout << 'Název: ' << název << endl ;
cout << 'Věk:' << stáří << endl ;
}
} ;

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

vrátit se 0 ;
}

Ve výše uvedeném kódu používáme veřejné členské metody getPlayer() a showPlayer() pro přístup ke dvěma soukromé členové název a stáří . The getPlayer() funkce získává vstup od uživatelů a zobrazuje je na obrazovce prostřednictvím showPlayer() funkce.



Výstup







Specifikátor chráněného přístupu

Chráněné členy třídy mohou být přístupné jak pro odvozené třídy, tak pro členské funkce třídy samotné. Chráněné členy se používají k poskytování úrovně přístupu k odvozeným třídám, aniž by byly detaily implementace vystaveny vnějšímu světu. Chráněné členy jsou deklarovány pomocí klíčového slova „ chráněný a dvojtečka (:) charakter. Chráněné členy umožňují rozšířit a upravit třídu, aniž by byla ohrožena její integrita. Odvozená třída může použít chránění členové k upřesnění nebo přizpůsobení chování základní třídy.

Zde je příklad třídy s chránění členové :



#include
pomocí jmenného prostoru std;

hráč třídy {
soukromé:
název řetězce;
int věk;

chráněný:
int cíle;

veřejnost:
void getPlayer ( )
{
cout <> název;
cout <> stáří;
}
void showPlayer ( )
{
cout << 'Název: ' << název << endl;
cout << 'Věk:' << stáří << endl;
}
} ;

class player1 : veřejný hráč {

soukromé:
země řetězce;

veřejnost:
void set_goals ( int g )
{
cíle = g;
}
void getPlayer1 ( )
{
getPlayer ( ) ;
cout <> země;
}
void showPlayer1 ( )
{
cout << 'cíle:' << cíle << endl;
showPlayer ( ) ;
cout << 'Země:' << země << endl;
}
} ;

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

vrátit se 0 ;
}

The hráč třída se skládá ze dvou soukromí členové , název a stáří , jeden chráněný člen, cíle , a soukromé členové jsou využíváni uvnitř veřejnost členské funkce, getPlayer() a showPlayer() . Existují dvě třídy, hráč a hráč1 , což jsou obě základní třídy. Jeden soukromé člen, země a tři veřejnost členské metody tvoří hráč1 třída. Set_goals() se používá ke změně chráněného člena cíle' hodnota. getPlayer1() volá getPlayer() členská funkce hráč třídy při dodatečném načítání vstupu pro zemi. podobné tomuto, showPlayer1() volá showPlayer() členskou funkci a vytiskne cíle a země hodnoty.

Výstup

Rozdíl mezi soukromými a chráněnými členy tříd C++

Zde jsou uvedeny některé z klíčových rozdílů mezi nimi Soukromé a Chráněný členové tříd C++.

1: Rozsah a funkčnost

Při zvažování použití specifikátorů přístupu je důležité pečlivě promyslet rozsah a funkčnost programu. A soukromý specifikátor přístupu poskytuje nejvyšší úroveň zabezpečení a zabraňuje nechtěnému přístupu k proměnným a metodám. Na druhou stranu a specifikátor chráněného přístupu nabízí širší rozsah přístupnosti a flexibility, což je nezbytné při plánování dědění odvozených tříd ze základní třídy.

2: Úroveň přístupu

Hlavní rozdíl mezi soukromé a chránění členové je úroveň přístupu, který poskytují. Chráněný členové mohou být přístupní jak pro odvozené třídy třídy, tak pro členské funkce, ale soukromé členy lze získat pouze prostřednictvím členských funkcí třídy.

3: Zapouzdření třídy

Další zásadní rozdíl mezi soukromé a chráněný členů je jejich role při udržování zapouzdření třídy. Chcete-li izolovat data a poskytnout uživatelům třídy určitou úroveň abstrakce, soukromé členové jsou zaměstnáni. Chráněný členové se používají ke správě struktury dědičnosti a poskytují přístup k členům základní třídy odvozenými třídami.

Závěrečné myšlenky

Soukromé a chránění členové jsou dvě základní úrovně přístupu ve třídě C++. The soukromé specifikátor přístupu znepřístupňuje členy třídy všem externím uživatelům a používá se k uchovávání informací soukromé v rámci třídy. Naproti tomu a chráněný specifikátor přístupu umožňuje přístup k členům třídy pouze odvozeným třídám, používá se k poskytování funkčnosti základní třídy a umožňuje úpravy beze změny chování základní třídy. Úroveň přístupu členů třídy hraje klíčovou roli při udržování zapouzdření třídy a poskytování úrovně přístupu uživatelům třídy.