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 Patient
on private
märksõna abil peidetud klassi muutujad number ja diagnoos, liikme funktsioonid muudetakse public
mä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
public
Mä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 public
muutuvat vanust ja public
funktsiooni displayAge()
.
Aastal main()
oleme loonud Sample
klassi objekti nimega obj1. Seejärel pääseme otse avalikele elementidele juurde koodide obj.age
ja abil obj.displayAge()
.
privaatne juurdepääsu modifitseerija
private
Mä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 protected
juurdepääsu täpsustajaga tutvumist veenduge, et teaksite pärandit C ++ keeles.
protected
Mä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 ChildSample
on päritud klass, millest tuletatakse Sample
. Muutuja vanuse deklareeritud Sample
koos protected
märksõna.
See tähendab, et ChildSample
juurdepääs vanusele Sample
on tema vanemklass.
Me näeme seda, kui oleme määranud vanuse väärtuse, ChildSample
kuigi vanus on Sample
klassis deklareeritud .
Kokkuvõte: avalik, privaatne ja kaitstud
public
elementidele pääsevad juurde kõik muud klassid ja funktsioonid.private
elementidele ei pääse juurde väljaspool klassi, kus nad on deklareeritud, välja arvatudfriend
klasside ja funktsioonide järgi.protected
elemendid on täpselt naguprivate
, 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.