Uvod v Modifikatorje dostopa v C ++

Zaščita podatkov je že dolgo v trendu, saj je to najpomembnejši del vsake domene. Če gre v napačno roko, potem boste veliko trpeli. Če želite sistematično obdelati svoje podatke, objektno usmerjeno programiranje ponuja vidno funkcijo, imenovano Skrivanje podatkov. Ta koncept je mogoče uporabiti v C ++ z uporabo dostopnih modifikatorjev. Gre za ključne besede, ki se uporabljajo za določanje dostopnosti metod, razredov in drugih članov. Javno, zasebno in zaščiteno je v objektno usmerjenih programskih jezikih znano kot Modifikatorji dostopa ali Specifikatorji dostopa. Za preprečevanje funkcij programa za neposreden dostop do notranje predstavitve razreda se uporablja skrivanje podatkov.

Vrste modifikatorjev dostopa v C ++

V C ++ obstajajo 3 vrste modifikatorjev dostopa

  1. Javno
  2. Zasebno
  3. Zaščiteno

Oglejmo si te modifikatorje s primeri:

1. Javno

Kot že ime pove, na voljo vsem. Vsi člani razreda bodo na voljo vsem, ko jih bodo razglasili za javne. Do javnega člana lahko dostopate kjer koli zunaj razreda, vendar znotraj programa. Do podatkovnih članov lahko dostopajo tudi drugi razredi, če so razglašeni za javne. Ker v javnem modifikatorju ni nobenih omejitev, lahko z (.) Operaterjem pik uporabimo neposreden dostop do funkcij in podatkov članov.

Koda:

#include
using namespace std;
class parent
(
private:
int p;
protected:
int q;
public:
int r;
parent() //constructor to initialize data members
(
p = 100;
q = 200;
r = 300;
)
);
//Inheritance concept
class child: public parent
(
//q becomes protected and r becomes public members of class child
public:
void showdata()
(
cout << "p is not accessible" << endl;
cout << "value of q is " << q << endl;
cout << "value of r is " << r << endl;
)
);
int main()
(
child c; //object of derived class(child)
c.showdata();
//cp = 100; invalid : private member, no access
//cq = 200; invalid : q is now private member of child class
//cr = 300; invalid : r is also now a private member of child class
return 0;
)

Izhod:


2. Zasebno

Zasebni modifikator je eden najboljših Modifikatorjev dostopa v C ++. Obseg članov zasebnih podatkov ostaja znotraj razreda, zato lahko funkcija znotraj razreda dostopa do članov razreda, ki so deklarirani kot zasebni. Ker to pomeni zasebno, samo vi se odločite, kdo lahko uporablja vaše stvari (na primer prijatelja) ali ne. Do članov ne morete dostopati neposredno s katerim koli objektom ali funkcijo, ki je zunaj razreda. Prijateljeva funkcija (kot sem rekel, da lahko uporablja vaše stvari) se lahko uporablja za dostop do zasebnih podatkov članov razreda. Med dostopanjem do zasebnih podatkovnih članov od koder koli zunaj razreda se prikaže napaka v času prevajanja.

Koda:

#include
using namespace std;
// Defining class
class Circle
( // private data member
private:
double radius;
// public member function
public:
void areaOfCircle(double r)
( // member function can access private
// data member radius
radius = r;
double area = 3.14*radius*radius;
cout << "Radius is: " << radius << endl;
cout << "Area is: " << area;
) );
// Main function
int main()
( // creating class object
Circle c;
/* trying to access private data member
directly outside the class */
c.areaOfCircle(4.5);
return 0;
)

Izhod:

Z uporabo zgornje kode lahko posredno dostopamo do zasebnih podatkovnih članov razreda s pomočjo javnih funkcij člana razreda.

3. Zaščiten

Zadnji specifikator dostopa, ki je najpomembneje uporabljen kot Modifikatorji dostopa v C ++, saj je njegovo obnašanje precej podoben zasebnemu modifikatorju dostopa. Do zaščitenih podatkov ali funkcij podatkov ni mogoče dostopati neposredno iz drugih razredov. Prijateljevo funkcijo lahko uporabite za dostop do zaščitenih članov, saj ta funkcija omogoča. Za zaščiteni modifikator obstaja nekaj omejitev. Člani, ki so deklarirani kot zaščiteni, so lahko zaščiteni do naslednje stopnje, šele ko postanejo zasebni.

Koda:

#include
using namespace std;
// Base class
class Parent
( // Protected data members
protected:
int id_protect;
);
// Derived class
class Child : public Parent
( public:
void set(int id)
( /* Child class to access the inherited protected data
members of the Base class */
id_protect = id;
)
void display() (
cout << "id_protect is: " << id_protect << endl;
)
);
// Main function
int main() (
Child p;
/* member function(derived class) can easily
access the data members(protected) of the base class */
p.set(07);
p.display();
return 0;
)

Izhod:

Iz zgornje kode je razvidno, da je id_protect razglašen kot zaščiten in do njega lahko dostopate z uporabo funkcije člana izpeljanega razreda. To pomeni, da lahko do zaščitenega podatkovnega člana osnovnega razreda dostopate z uporabo funkcije člana izpeljanega razreda.

Prednosti Modifikatorji dostopa v C ++

Spodaj so navedene različne prednosti Access Modifiers v C ++:

  • Modifikator dostopa vam omogoča pooblastilo za nadzor vaših podatkov glede na scenarije. Če delate v bančni domeni, morate uporabiti zasebne člane, da bodo vaši podatki skriti pred drugimi uporabniki, avtoriteta je v vaših rokah. Če želite, jih lahko javno objavite, vendar to ne bo odličen pristop, saj lahko v vsakem primeru kdorkoli kadar koli spremeni vaše podatke
  • Vsi javni člani osnovnega razreda postanejo javni člani izpeljanega razreda. Na enak način vsi zaščiteni člani osnovnega razreda postanejo zaščiteni pripadniki izpeljanega razreda, kar vam bo pomagalo pri enostavno urejanju podatkov na vseh pogledih, saj kot vidite, pri dostopu do teh članov ni sprememb, če v svojem programskem jeziku uporabljate javno dedovanje .
  • V scenariju zasebnega dedovanja postanejo vsi javni člani osnovnega razreda zasebni člani izpeljanega razreda. Na enak način vsi zaščiteni člani osnovnega razreda postanejo zasebni člani izpeljanega razreda, medtem ko v scenariju zaščitenega dedovanja vsi javni člani osnovnega razreda postanejo zaščiteni pripadniki izpeljanega razreda in vsi zaščiteni člani osnovnega razreda postanejo zaščiteni pripadniki izpeljanega razreda. Upoštevajte, da specifikacija dostopa za C ++ deluje na podlagi razreda, ne na podlagi predmeta.

Zaključek

Več programskih jezikov nima zasebnega in zaščitenega dostopa, zato ga lahko vsak uporabnik uporablja na želene načine. Koderji C ++ ne bodo zaupali uporabnikom, zato jih ne smejo uporabljati. Ker lahko člani javnih podatkov predstavljajo resno potencialno tveganje za hrošče ali hekerje.

Priporočeni članki

To je vodnik za Modifikatorje dostopa v C ++. Tukaj razpravljamo o vrstah Modifikatorjev dostopa v C ++ skupaj z njegovimi primeri in nekaterimi prednostmi. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. Dostop do modifikatorjev v Javi
  2. Kapsulacija v C ++
  3. Ukazi C ++
  4. Najboljši C ++ prevajalnik
  5. Vrste modifikatorjev dostopa v C #
  6. Kapsulacija v JavaScript
  7. 11 najboljših lastnosti in prednosti C ++