C ++ pääsymodifikaattorit

Tässä opetusohjelmassa opitaan C ++ -luokkien käyttömuokkaajista esimerkkien avulla. C ++: n käyttömuokkaajat ovat julkisia, yksityisiä ja suojattuja.

Yksi olio-ohjelmointikielien, kuten C ++, pääominaisuuksista on tietojen piilottaminen .

Tietojen piilottaminen tarkoittaa luokan tietojen jäsenten pääsyn rajoittamista. Tämä estää muita toimintoja ja luokkia käsittelemästä luokkatietoja.

On kuitenkin myös tärkeää, että jotkut jäsenfunktiot ja jäsendata ovat saatavilla, jotta piilotettuja tietoja voidaan käsitellä epäsuorasti.

C ++: n käyttömuokkaajien avulla voimme määrittää, mitkä luokan jäsenet ovat muiden luokkien ja toimintojen käytettävissä ja mitkä eivät.

Esimerkiksi,

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

Tällöin Patientluokan muuttujat potilaiden lukumäärä ja diagnoosi piilotetaan privateavainsanalla, kun taas jäsenfunktiot ovat käytettävissä publicavainsanalla.

C ++ -käyttömuuntimien tyypit

C ++: ssa on 3 pääsymuuttujaa:

  • public
  • private
  • protected

julkisen pääsyn muokkaaja

  • publicAvainsanaa käytetään luoda yleistä jäsenille (tiedot ja toiminnot).
  • Yleisön jäsenet ovat käytettävissä mistä tahansa ohjelman osasta.

Esimerkki 1: C ++ public Access Modifier

 #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; )

Tuotos:

 Anna ikäsi: 20 Ikä = 20

Tässä ohjelmassa olemme luoneet luokan nimeltä nimeltä Sample, joka sisältää publicvaihtelevan iän ja publicfunktion displayAge().

Sisään main()olemme luoneet objektin, jonka Samplenimi on obj1. Sitten pääsemme julkisiin elementteihin suoraan käyttämällä koodeja obj.ageja obj.displayAge().

yksityinen pääsynmuokkaaja

  • privateAvainsanaa käytetään luomaan yksityiset jäsenet (tiedot ja toiminnot).
  • Yksityisiin jäseniin pääsee vain luokan sisällä.
  • Ystäväluokat ja ystävätoiminnot voivat kuitenkin käyttää yksityisiä jäseniä.

Esimerkki 2: C ++ private Access Specifier

 #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; )

Tuotos:

 Anna ikäsi: 20 Ikä = 20

Kohdassa main()obj1 ei voida suoraan käyttää luokan muuttujan ikää.

 // error cin>> obj1.age;

Voimme manipuloida ikää vain epäsuorasti julkisen toiminnon kautta displayAge(), koska tämä funktio määrittää iän siihen välitetylle argumentille eli funktioparametrille int a.

suojattu Access Modifier

Ennen kuin opimme protectedkäyttötarkennuksesta, varmista, että tiedät perinnöstä C ++: ssa.

  • protectedAvainsanaa käytetään luomaan suojattuja jäsenille (data ja toiminta).
  • Suojattuihin jäseniin pääsee luokan sisällä ja johdetusta luokasta.

Esimerkki 3: C ++ - suojattu pääsyn määrittelijä

 #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; )

Tuotos:

 Anna ikäsi: 20 Ikä = 20

Tässä ChildSampleon peritty luokka, joka on johdettu Sample. Muuttuja ikä on ilmoitettu Samplekanssa protectedavainsanan.

Tämä tarkoittaa, että hän ChildSamplevoi käyttää ikää, koska se Sampleon sen vanhempaluokka.

Näemme tämän, kun olemme määrittäneet iän arvon, ChildSamplevaikka ikä on ilmoitettu Sampleluokassa.

Yhteenveto: julkinen, yksityinen ja suojattu

  • public elementteihin pääsee kaikista muista luokista ja toiminnoista.
  • privateelementtejä ei voida käyttää luokan ulkopuolella, johon ne on ilmoitettu, paitsi friendluokkien ja toimintojen mukaan.
  • protectedelementit ovat aivan kuten private, paitsi että niihin pääsee johdetuilla luokilla.
Määrittimet Sama luokka Johdettu luokka Luokan ulkopuolella
public Joo Joo Joo
private Joo Ei Ei
protected Joo Joo Ei

Huomaa: Oletusarvon mukaan luokan C ++ luokan jäsenet ovat private, ellei toisin mainita.

Mielenkiintoisia artikkeleita...