Kakšna je razlika med zasebnimi in zaščitenimi člani razredov C++

Kaksna Je Razlika Med Zasebnimi In Zascitenimi Clani Razredov C



C++ je objektno usmerjen programski jezik (OOP), ki zagotavlja mehanizem za enkapsulacijo podatkov in funkcij v eno samo entiteto, imenovano razred. Ena bistvenih lastnosti razreda je zmožnost določanja ravni dostopa za svoje člane. V objektno usmerjenem programiranju, specifikatorji dostopa se uporabljajo za nadzor vidnosti in dostopnosti polj in metod razreda. Zaščiteno , javnosti , in zasebno ravni dostopa so tri osnovne vrste ravni dostopa v C++.

V tem zapisu bomo razpravljali o razliki med obema glavnima specifikator dostopa s, zasebno in zaščiten člani razreda C++.

Specifikator zasebnega dostopa

Zasebni člani so deklarirane s ključno besedo ' zasebno ‘. The specifikator zasebnega dostopa omejuje dostop do članov razreda samo na razred sam. Koda zunaj razreda ne more dostopati do zasebnega člana ali ga spreminjati. To pomeni, da lahko samo metode, deklarirane v razredu, dostopajo in delujejo na zasebni člani , niti izpeljani razredi ne morejo dostopati zasebni člani . Pogosta uporaba zasebni člani je zagotoviti pravilno delovanje razreda. Zasebni člani se uporabljajo za inkapsulacijo podatkov razreda in zagotavljanje ravni abstrakcije uporabnikom razreda.







#include
uporabo imenski prostor std ;

razred igralec {

zasebno :
ime niza ;
int starost ;

javnosti :
praznina getPlayer ( )
{
cout << 'Vnesite ime:' ;
prehranjevanje >> ime ;
cout << 'Vnesite starost:' ;
prehranjevanje >> starost ;
}
praznina showPlayer ( )
{
cout << 'Ime:' << ime << konec ;
cout << 'Starost:' << starost << konec ;
}
} ;

int glavni ( )
{
igralec pl ;
pl. getPlayer ( ) ;
pl. showPlayer ( ) ;

vrnitev 0 ;
}

V zgornji kodi uporabljamo metode javnega člana getPlayer() in showPlayer() za dostop do obeh zasebno člani ime in starost . The getPlayer() funkcija pridobi vnos od uporabnikov in ga prikaže na zaslonu prek showPlayer() funkcijo.



Izhod







Specifikator zaščitenega dostopa

Zaščiteni člani razreda lahko dostopajo tako izpeljani razredi kot članske funkcije samega razreda. Zaščiteni člani se uporabljajo za zagotavljanje ravni dostopa do izpeljanih razredov brez izpostavljanja podrobnosti izvedbe zunanjemu svetu. Zaščiteni člani so deklarirane s ključno besedo ' zaščiten ' in debelo črevo (:) značaj. Zaščiteni člani omogočajo razširitev in spreminjanje razreda, ne da bi pri tem ogrozili njegovo celovitost. Izpeljani razred lahko uporablja zaščiteni člani izboljšati ali prilagoditi vedenje osnovnega razreda.

Tukaj je primer razreda z zaščiteni člani :



#include
uporaba imenskega prostora std;

razredni igralec {
zasebno:
ime niza;
int starost;

zaščiten:
int cilji;

javnost:
void getPlayer ( )
{
cout <> ime;
cout <> starost;
}
void showPlayer ( )
{
cout << 'Ime:' << ime << endl;
cout << 'Starost:' << starost << endl;
}
} ;

razred igralec1 : javni igralec {

zasebno:
niz država;

javnost:
void set_goals ( int g )
{
cilji = g;
}
void getPlayer1 ( )
{
getPlayer ( ) ;
cout <> država;
}
void showPlayer1 ( )
{
cout << 'cilji: ' << cilji << endl;
showPlayer ( ) ;
cout << 'Država: ' << država << endl;
}
} ;

int main ( )
{
igralec1 pl;
pl.set_goals ( 101 ) ;
pl.getPlayer1 ( ) ;
pl.showPlayer1 ( ) ;

vrnitev 0 ;
}

The igralec razred sestavljata dva zasebni člani , ime in starost , ena zaščiten član, cilji , in zasebno člani se uporabljajo znotraj javnosti članske funkcije, getPlayer() in showPlayer() . Obstajata dva razreda, igralec in igralec1 , ki sta oba osnovna razreda. ena zasebno član, država , in tri javnosti članske metode sestavljajo igralec1 razred. Zastavi si cilje() se uporablja za spreminjanje zaščitenega člana cilji' vrednost. getPlayer1() kliče getPlayer() člansko funkcijo v igralec razreda, medtem ko dodatno pridobi vnos za državo. Podobno temu, showPlayer1() kliče showPlayer() funkcijo člana in natisne cilji in država vrednote.

Izhod

Razlika med zasebnimi in zaščitenimi člani razredov C++

Tukaj je navedenih nekaj ključnih razlik med Zasebno in Zaščiteno člani razredov C++.

1: Obseg in funkcionalnost

Ko razmišljate o uporabi specifikatorjev dostopa, je ključnega pomena skrbno razmisliti o Obseg in funkcionalnost programa. A specifikator zasebnega dostopa zagotavlja najvišjo raven varnosti in preprečuje nenameren dostop do spremenljivk in metod. Po drugi strani pa a specifikator zaščitenega dostopa ponuja obsežnejšo paleto dostopnosti in prilagodljivosti, kar je bistvenega pomena pri načrtovanju dedovanja izpeljanih razredov iz osnovnega razreda.

2: Raven dostopa

Glavna razlika med zasebno in zaščiteni člani je raven dostopa, ki jo zagotavljajo. Zaščiteno člani so lahko dostopni tako z izpeljanimi razredi razreda kot s funkcijami članov, vendar zasebno člane je mogoče pridobiti le s funkcijami članov razreda.

3: Enkapsulacija razreda

Še ena bistvena razlika med zasebno in zaščiten članov je njihova vloga pri ohranjanju inkapsulacije razreda. Če želite izolirati podatke in uporabnikom razreda zagotoviti določeno raven abstrakcije, zasebno člani so zaposleni. Zaščiteno člani so zaposleni za upravljanje strukture dedovanja in zagotavljanje dostopa do članov osnovnega razreda z izpeljanimi razredi.

Končne misli

Zasebno in zaščiteni člani sta dve bistveni ravni dostopa v razredu C++. The zasebno specifikator dostopa naredi člane razreda nedostopne vsem zunanjim uporabnikom in se uporablja za shranjevanje informacij zasebno znotraj razreda. Nasprotno, a zaščiten specifikator dostopa dovoljuje dostop do članov razreda le izpeljanim razredom, uporablja se za zagotavljanje funkcionalnosti osnovnega razreda in omogoča spreminjanje brez spreminjanja obnašanja osnovnega razreda. Raven dostopa članov razreda igra ključno vlogo pri ohranjanju inkapsulacije razreda in zagotavljanju ravni dostopa uporabnikom razreda.