Preporučeno, 2019

Izbor Urednika

Razlika između privatnih i zaštićenih u C ++

Postoje tri vrste zaštite pristupa definirane u C ++ programskom jeziku za skrivanje podataka. Skrivanje podataka bitan je dio objektno orijentiranog programiranja. Privatne i zaštićene ključne riječi nude razinu zaštite pristupa kako bi sakrili podatke i funkciju unutar klase. Privatni članovi ne mogu biti naslijeđeni dok zaštićeni član može biti naslijeđen, ali u ograničenom rasponu. Ove specifikacije ukazuju na vidljivost članova u kojima je privatnost restriktivnija nego što je zaštićena.

Tablica usporedbe

Osnova za usporedbuPrivatnazaštićen
Nasljeđivanje svojstva na izvedenu klasu
Izvedena klasa ne može pristupiti privatnim članovima osnovne klase.Izvedena klasa može pristupiti članovima koji su zaštićeni osnovnom klasom.
Pristupačnost
Privatni članovi klase su nedostupni izvan opsega razreda.Zaštićeni članovi klase su nedostupni izvan opsega razreda osim klase izvedene odmah.
Dostupno iz vlastitog razredaDaDa
Dostupno iz izvedene klaseNeDa
Dostupno izvanaNeNe

Definicija privatnog

Članovi razreda deklarirani kao privatni mogu se dohvatiti samo unutar klase. Drugim riječima, članovima deklariranim u privatnom odjeljku klase može pristupiti samo funkcija prijatelja i funkcija člana klase. Privatni članovi se ne mogu dobiti izravno izvedenoj klasi i nedostupni su izvan opsega razreda.

C ++ program prikazuje koncept privatnih pristupnika.

 #include pomoću imena prostora std; klasa A {privatna: int i; public: void get () {cout <> i; }}; klasa B: javna A {public: void show () {i ++; cout << "Vaš uneseni broj nakon incrementcpp"> # uključuje korištenje imena prostora std; klasa sisavac {public: void mammalMethod (void) {cout << "Dolazi pod kategoriju sisavaca." 

U gore navedenom programu, jedan objekt podređene klase kreira se s imenom “ob”, a članskoj funkciji roditeljske klase može se pristupiti putem metode poziva klase pod nazivom “marine_mammalMethod”. Iako se roditeljskoj metodi ne može pristupiti izravno s objektom “ob”.

Definicija zaštićene

Članovi razreda deklarirani kao zaštićeni u klasi mogu biti dostupni samo kroz funkciju člana i funkciju prijatelja klase. Ovim zaštićenim članovima ne može se pristupiti izvan opsega klase, osim dijete klase (odmah izvedena iz nje). On služi ograničenoj svrsi u nasljeđivanju i nasljeđuje svojstva na ograničen način.

Donji C ++ program ilustrira koncept zaštićenih specifikatora pristupa.

 #include pomoću imena prostora std; class account1 {protected: int x, y; // dostupan izvedenoj klasi public: void set (int a, int b) {x = a; y = b; } void show () {cout < 

U gornjem primjeru podređena klasa nasljeđuje svojstva osnovne klase jer su članovi podataka deklarirani kao javni ili zaštićeni. Ne bi bilo moguće ako su x i y deklarirani kao privatni u osnovnoj klasi.

Ključne razlike između privatnih i zaštićenih u C ++

  1. Zaštićena ključna riječ može se koristiti za izgradnju članova klase koji su privatni za njihovu klasu, ali se mogu naslijediti i koristiti od izvedene klase. Isto tako, to nije moguće dok se koristi privatno, jer se privatni članovi ne mogu naslijediti izravno na izvedenu klasu.
  2. Kada je osnovna klasa naslijeđena pomoću privatnog pristupnika, čini sve javne i zaštićene članove osnovne klase, privatne članove izvedene klase. Nasuprot tome, to nije slučaj u zaštićenim specifikatorima pristupa.

Zaključak

Privatni i zaštićeni su specifikatori pristupa koji se koriste za različito određivanje vidljivosti klase i njezinih članova. Međutim, zaštićena je fleksibilnija od privatne.

Top