Priporočena, 2024

Izbira Urednika

Razlika med zasebnimi in zaščitenimi v C ++

Obstajajo tri vrste zaščite dostopa, definirane v programskem jeziku C ++ za skrivanje podatkov. Skrivanje podatkov je bistveni del objektno usmerjenega programiranja. Zasebne in zaščitene ključne besede ponujajo raven zaščite dostopa, da skrijejo podatke in funkcijo znotraj razreda. Zasebnih članov ni mogoče podedovati, medtem ko je mogoče zaščiten član podedovati, vendar v omejenem obsegu. Te specifikacije kažejo na prepoznavnost članov, kjer je zasebnost bolj omejevalna kot zaščitena.

Primerjalna tabela

Podlaga za primerjavoZasebnoZaščiteno
Podedovanje lastnosti za izpeljani razred
Izpeljani razred ne more dostopati do zasebnih članov osnovnega razreda.Izpeljani razred lahko dostopa do zaščitenih članov osnovnega razreda.
Dostopnost
Zasebni člani razreda so nedostopni iz obsega razreda.Zaščiteni člani razreda so nedostopni iz obsega razreda, razen razreda, ki je izveden takoj.
Dostopno iz lastnega razredaDaDa
Dostopno iz izpeljanega razredaNeDa
Dostopno od zunajNeNe

Opredelitev zasebnega

Člani razreda, deklarirani kot zasebni, se lahko pridobijo samo v razredu. Z drugimi besedami, člani, razglašeni v zasebnem oddelku razreda, so lahko dostopni samo funkciji prijatelja in funkciji člana razreda. Zasebni člani se ne dobijo neposredno iz izpeljanega razreda in so nedostopni iz obsega razreda.

Program C ++ prikazuje koncept zasebnih dostopov.

 #include using namespace std; razred A {zasebno: int i; public: void get () {cout <> i; }}; razred B: javni A {public: void show () {i ++; cout << "Vaša vnesena številka po inkrementaciji cpp"> # vključuje uporabo imenskega prostora std; razred sesalec {javna: void mammalMethod (void) {cout << "Prihaja pod kategorijo sesalcev." 

V zgoraj navedenem programu se ustvari en objekt podrejenega razreda z imenom »ob« in funkciji člana nadrejenega razreda lahko dostopate prek metode klicev otroškega razreda »marine_mammalMethod«. Kljub temu do matične metode ni mogoče neposredno dostopati s predmetom »ob«.

Opredelitev zaščitene

Člani razreda, razglašeni kot zaščiteni v razredu, so lahko dostopni samo prek funkcije člana in funkcije prijatelja v razredu. Do teh zaščitenih članov ni mogoče dostopati iz obsega razreda, razen otrokovega razreda (takoj izpeljan iz njega). Služi omejenemu namenu pri dedovanju in lastnine podeduje na omejen način.

Spodaj navedeni program C ++ ponazarja koncept zaščitenih specifikacij dostopa.

 #include using namespace std; class account1 {protected: int x, y; // dostopen izpeljanemu razredu public: set void (int a, int b) {x = a; y = b; } void show () {cout < 

V zgornjem primeru podrejeni razred podeduje lastnosti osnovnega razreda, ker so podatkovni členi deklarirani kot javni ali zaščiteni. Ne bi bilo mogoče, če sta bila x in y v osnovnem razredu razglašena za zasebno.

Ključne razlike med zasebnimi in zaščitenimi v C ++

  1. Zaščiteno ključno besedo lahko uporabite za izdelavo članov razreda, ki so zasebni za njihov razred, lahko pa jih podedujejo in uporabljajo izpeljani razred. Nasprotno pa to ni mogoče, če uporabljate zasebno, ker zasebnih članov ni mogoče podedovati neposredno z izpeljanim razredom.
  2. Če je osnovni razred podedovan z uporabo specifikatorja zasebnega dostopa, postane vse javne in zaščitene člane osnovnega razreda, zasebne člane izpeljanega razreda. V nasprotju s tem pa to ne velja za zaščitene specifikacije dostopa.

Zaključek

Zasebni in zaščiteni so dostopni specifikatorji, ki se uporabljajo za drugačno nastavitev vidnosti razreda in njegovih članov. Vendar pa je zaščitena bolj prilagodljiva kot zasebna.

Top