C ++ juurdepääsu modifikaatorid

Selles õpetuses tutvume näidete abil C ++ klasside juurdepääsu modifikaatoritega. C ++ juurdepääsu modifikaatorid on avalikud, privaatsed ja kaitstud.

Objektorienteeritud programmeerimiskeelte, näiteks C ++, üks peamisi omadusi on andmete varjamine .

Andmete varjamine viitab juurdepääsu piiramisele klassi andmetele. Selle eesmärk on takistada teiste funktsioonide ja klasside rikkumist klassi andmetega.

Siiski on oluline muuta mõned liikme funktsioonid ja liikme andmed kättesaadavaks, et peidetud andmeid saaks kaudselt manipuleerida.

C ++ juurdepääsu modifikaatorid võimaldavad meil määrata, millistele klassi liikmetele on juurdepääs teistele klassidele ja funktsioonidele, millistele mitte.

Näiteks,

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

Siin Patienton privatemärksõna abil peidetud klassi muutujad number ja diagnoos, liikme funktsioonid muudetakse publicmärksõna abil kättesaadavaks .

C ++ juurdepääsu modifikaatorite tüübid

C ++ versioonis on 3 juurdepääsu modifikaatorit:

  • public
  • private
  • protected

avaliku juurdepääsu modifitseerija

  • publicMärksõna on kasutatud luua avaliku kohal (andmed ja funktsioonid).
  • Avalikele liikmetele on juurdepääs programmi mis tahes osast.

Näide 1: C ++ avaliku juurdepääsu modifikaator

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

Väljund:

 Sisestage oma vanus: 20 Vanus = 20

Selles programmis oleme loonud klassi nimega Sample, mis sisaldab publicmuutuvat vanust ja publicfunktsiooni displayAge().

Aastal main()oleme loonud Sampleklassi objekti nimega obj1. Seejärel pääseme otse avalikele elementidele juurde koodide obj.ageja abil obj.displayAge().

privaatne juurdepääsu modifitseerija

  • privateMärksõna on kasutatud luua erasektori liikmed (andmed ja funktsioonid).
  • Privaatliikmetele pääseb juurde ainult kursuse seest.
  • Sõbraklassid ja sõbrafunktsioonid pääsevad aga juurde eraliikmetele.

Näide 2: C ++ privaatse juurdepääsu spetsifikaator

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

Väljund:

 Sisestage oma vanus: 20 Vanus = 20

In main()objekt obj1 ei saa otseselt juurdepääsu klassi muutuja vanus.

 // error cin>> obj1.age;

Vanust saame avaliku funktsiooni kaudu manipuleerida ainult kaudselt displayAge(), kuna see funktsioon omistab vanuse temale edastatud argumendile ehk funktsiooni parameetrile int a.

kaitstud juurdepääsu modifikaator

Enne protectedjuurdepääsu täpsustajaga tutvumist veenduge, et teaksite pärandit C ++ keeles.

  • protectedMärksõna on kasutatud luua kaitseala kohal (andmed ja funktsiooni).
  • Kaitstud liikmetele pääseb juurde klassi sees ja tuletatud klassist.

Näide 3: C ++ kaitstud juurdepääsu spetsifikaator

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

Väljund:

 Sisestage oma vanus: 20 Vanus = 20

Siin ChildSampleon päritud klass, millest tuletatakse Sample. Muutuja vanuse deklareeritud Samplekoos protectedmärksõna.

See tähendab, et ChildSamplejuurdepääs vanusele Sampleon tema vanemklass.

Me näeme seda, kui oleme määranud vanuse väärtuse, ChildSamplekuigi vanus on Sampleklassis deklareeritud .

Kokkuvõte: avalik, privaatne ja kaitstud

  • public elementidele pääsevad juurde kõik muud klassid ja funktsioonid.
  • privateelementidele ei pääse juurde väljaspool klassi, kus nad on deklareeritud, välja arvatud friendklasside ja funktsioonide järgi.
  • protectedelemendid on täpselt nagu private, välja arvatud see, et neile pääsevad juurde tuletatud klassid.
Spetsifikaatorid Sama klass Tuletatud klass Väline klass
public Jah Jah Jah
private Jah Ei Ei
protected Jah Jah Ei

Märkus . Vaikimisi on klassi C ++ klassiliikmed private, kui pole teisiti määratud.

Huvitavad Artiklid...