Modifikátory prístupu v C ++

V tejto príručke sa pomocou príkladov dozvieme o modifikátoroch prístupu pre triedy C ++. Modifikátory prístupu v C ++ sú verejné, súkromné ​​a chránené.

Jednou z hlavných funkcií objektovo orientovaných programovacích jazykov, ako je C ++, je skrývanie údajov .

Skrytím údajov sa rozumie obmedzenie prístupu k dátovým členom triedy. To nezabráni iným funkciám a triedam manipulovať s údajmi o triede.

Je však tiež dôležité sprístupniť niektoré členské funkcie a členské údaje, aby bolo možné so skrytými údajmi manipulovať nepriamo.

Modifikátory prístupu v C ++ nám umožňujú určiť, ktorí členovia triedy sú prístupní pre iné triedy a funkcie a ktorí nie.

Napríklad,

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

Tu sú premenné patientNumber a diagnóza Patienttriedy skryté pomocou privatekľúčového slova, zatiaľ čo členské funkcie sú prístupné pomocou publickľúčového slova.

Typy modifikátorov prístupu v C ++

V C ++ existujú 3 modifikátory prístupu:

  • public
  • private
  • protected

verejný modifikátor prístupu

  • publicKľúčové slovo sa používa na vytvorenie verejnej členmi (dátam a funkciám).
  • Verejní členovia sú prístupní z ktorejkoľvek časti programu.

Príklad 1: C ++ verejný modifikátor prístupu

 #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ýkon:

 Zadajte svoj vek: 20 Vek = 20

V tomto programe sme vytvorili triedu s názvom Sample, ktorá obsahuje publicpremenný vek a publicfunkciu displayAge().

V rámci main()sme vytvorili objekt Sampletriedy s názvom obj1. Potom sme priamo pomocou kódov obj.agea sprístupnili verejné prvky obj.displayAge().

súkromný modifikátor prístupu

  • privateKľúčové slovo sa používa na vytvorenie vlastnej členmi (dátam a funkciám).
  • K súkromným členom je prístup iba z triedy.
  • Triedy priateľov a funkcie priateľov však majú prístup k súkromným členom.

Príklad 2: Špecifikátor súkromného prístupu 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; )

Výkon:

 Zadajte svoj vek: 20 Vek = 20

V main()objekte obj1 nemôže mať priamy prístup k vekovej premennej.

 // error cin>> obj1.age;

S vekom môžeme manipulovať iba nepriamo prostredníctvom verejnej funkcie displayAge(), pretože táto funkcia priraďuje vek k argumentu, ktorý je doň vložený, tj k parametru funkcie int a.

chránený modifikátor prístupu

Predtým, ako sa dozvieme o protectedšpecifikátore prístupu, uistite sa, že viete o dedičnosti v C ++.

  • protectedKľúčové slovo sa používa na vytvorenie chránenej členmi (dáta a funkcie).
  • K chráneným členom je prístup v rámci triedy a z odvodenej triedy.

Príklad 3: C ++ chránený špecifikátor prístupu

 #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ýkon:

 Zadajte svoj vek: 20 Vek = 20

Tu ChildSampleje zdedená trieda, z ktorej je odvodená Sample. Premenná vek je deklarovaná v Samples protectedkľúčovým slovom.

To znamená, že ChildSamplemá prístup k veku, pretože Sampleje to jeho nadradená trieda.

Vidíme to tak, že sme priradili hodnotu veku, ChildSampleaj keď je vek v Sampletriede deklarovaný .

Zhrnutie: verejné, súkromné ​​a chránené

  • public k prvkom majú prístup všetky ostatné triedy a funkcie.
  • privateprvky nie sú prístupné mimo triedy, v ktorej sú deklarované, s výnimkou friendtried a funkcií.
  • protectedprvky sú rovnaké ako private, až na to, že k nim môžu získať prístup odvodené triedy.
Špecifikátory Rovnaká trieda Odvodená trieda Mimo triedy
public Áno Áno Áno
private Áno Nie Nie
protected Áno Áno Nie

Poznámka:private Pokiaľ nie je uvedené inak, sú členovia triedy v C ++ štandardne .

Zaujímavé články...