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:
publicprivateprotected
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é
publick prvkom majú prístup všetky ostatné triedy a funkcie.privateprvky nie sú prístupné mimo triedy, v ktorej sú deklarované, s výnimkoufriendtried a funkcií.protectedprvky sú rovnaké akoprivate, 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 .








