C ++ Modifikatori pristupa

U ovom uputstvu uz primjere ćemo naučiti o modifikatorima pristupa za klase C ++. Modifikatori pristupa C ++-a su javni, privatni i zaštićeni.

Jedna od glavnih značajki objektno orijentiranih programskih jezika kao što je C ++ je skrivanje podataka .

Skrivanje podataka odnosi se na ograničavanje pristupa članovima podataka klase. Na ovaj se način sprječava da druge funkcije i razredi neovlašteno mijenjaju podatke klase.

Međutim, također je važno učiniti neke funkcije članova i podacima članova dostupnim kako bi se sa skrivenim podacima moglo neizravno manipulirati.

Modifikatori pristupa C ++-a omogućuju nam da odredimo koji su članovi klase dostupni drugim klasama i funkcijama, a koji ne.

Na primjer,

 class Patient ( private: int patientNumber; string diagnosis; public: void billing() ( // code ) void makeAppointment() ( // code ) ); 

Ovdje su varijable PatientNumber i dijagnoza Patientklase skrivene pomoću privateključne riječi, dok su funkcije člana dostupne pomoću publicključne riječi.

Vrste modifikatora pristupa C ++

U C ++-u postoje 3 modifikatora pristupa:

  • public
  • private
  • protected

javni pristupni modifikator

  • publicKljučna riječ se koristi za stvaranje javne članova (podaci i funkcije).
  • Članovima javnosti dostupan je bilo koji dio programa.

Primjer 1: C ++ modifikator javnog pristupa

 #include using namespace std; // define a class class Sample ( // public elements public: int age; void displayAge() ( cout << "Age = " << age << endl; ) ); int main() ( // declare a class object Sample obj1; cout <> obj1.age; // call class function obj1.displayAge(); return 0; )

Izlaz:

 Unesite svoju dob: 20 Dob = 20

U ovom smo programu stvorili klasu s imenom Samplekoja sadrži publicpromjenjivu dob i publicfunkciju displayAge().

U main(), stvorili smo objekt Sampleklase pod nazivom obj1. Tada javnim elementima pristupamo izravno pomoću kodova obj.agei obj.displayAge().

privatni modifikator pristupa

  • privateKljučna riječ se koristi za stvaranje privatne članova (podaci i funkcije).
  • Privatnim članovima može se pristupiti samo unutar razreda.
  • Međutim, klase prijatelja i funkcije prijatelja mogu pristupiti privatnim članovima.

Primjer 2: Specifikacija privatnog pristupa C ++

 #include using namespace std; // define a class class Sample ( // private elements private: int age; // public elements public: void displayAge(int a) ( age = a; cout << "Age = " << age << endl; ) ); int main() ( int ageInput; // declare an object Sample obj1; cout <> ageInput; // call function and pass ageInput as argument obj1.displayAge(ageInput); return 0; )

Izlaz:

 Unesite svoju dob: 20 Dob = 20

U main(), objekt obj1 ne može izravno pristupiti varijabli razreda age.

 // error cin>> obj1.age;

Dobom možemo samo neizravno manipulirati putem javne funkcije displayAge(), jer ova funkcija dodjeljuje dob argumentu koji je u njega proslijeđen, tj int a. Parametar funkcije .

zaštićeni Modifikator pristupa

Prije nego što naučimo o opisu protectedpristupa, provjerite znate li nasljeđivanje u C ++.

  • protectedKljučna riječ se koristi za stvaranje zaštićene članova (podaci i funkcije).
  • Zaštićenim članovima se može pristupiti unutar klase i iz izvedene klase.

Primjer 3: Specifikator pristupa zaštićen C ++

 #include using namespace std; // declare parent class class Sample ( // protected elements protected: int age; ); // declare child class class SampleChild : public Sample ( public: void displayAge(int a) ( age = a; cout << "Age = " << age << endl; ) ); int main() ( int ageInput; // declare object of child class SampleChild child; cout <> ageInput; // call child class function // pass ageInput as argument child.displayAge(ageInput); return 0; )

Izlaz:

 Unesite svoju dob: 20 Dob = 20

Ovdje ChildSampleje naslijeđena klasa koja je izvedena iz Sample. Varijabla dob deklarira Samplese protectedključnom riječi.

To znači da ChildSamplemože pristupiti dobi jer Sampleje njena roditeljska klasa.

To vidimo jer smo dodijelili vrijednost dobi ChildSampleiako je dob deklarirana u Sampleklasi.

Sažetak: javno, privatno i zaštićeno

  • public elementima mogu pristupiti sve ostale klase i funkcije.
  • privateelementima se ne može pristupiti izvan klase u kojoj su deklarirani, osim po friendklasama i funkcijama.
  • protectedelementi su slični private, osim što im mogu pristupiti izvedene klase.
Specifikatori Isti razred Izvedena klasa Izvan razreda
public Da Da Da
private Da Ne Ne
protected Da Da Ne

Napomena: Prema zadanim postavkama, članovi klase u C ++ jesu private, osim ako nije drugačije naznačeno.

Zanimljivi članci...