Sissejuhatus juurdepääsu modifikaatoritesse C ++

Andmete kaitsmine on olnud pikka aega trendis, kuna see on iga domeeni kõige olulisem osa. Kui läheb valesse kätte, siis kannatate palju. Oma andmete süstemaatiliseks käitlemiseks pakub objektorienteeritud programmeerimine silmapaistvat funktsiooni, mida tuntakse andmete peitmise all. Seda kontseptsiooni saab rakenduses C ++ kasutada Accessi modifikaatorite abil. Need on märksõnad, mida kasutatakse meetodite, klasside ja teiste liikmete juurdepääsetavuse määramiseks. Avalikku, privaatset ja kaitstud nimetatakse objektorienteeritud programmeerimiskeeltes juurdepääsu modifikaatoriteks või juurdepääsu spetsifikaatoriteks. Et vältida programmi funktsioonide otsest juurdepääsu klassi sisemisele esindamisele, kasutatakse andmete peitmist.

Juurdepääsumuundurite tüübid C ++ -s

C ++-s on 3 tüüpi juurdepääsu modifikaatoreid

  1. Avalik
  2. Privaatne
  3. Kaitstud

Vaatame neid modifikaatoreid koos näidetega:

1. Avalik

Nagu nimigi ütleb, kõigile kättesaadav. Kõik klassi liikmed on pärast avalikkuseks kuulutamist kõigile kättesaadavad. Avalikule liikmele pääseb juurde igal pool väljaspool klassi, kuid programmi piires. Andmeliikmetele pääsevad juurde ka teised klassid, kui need on avalikud. Kuna avalikus modifikatsioonis pole mingeid piiranguid, saame liikmesfunktsioonide ja andmete otseseks avamiseks kasutada punktioperaatorit..

Kood:

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

Väljund:


2. Privaatne

Privaatne modifikaator on üks parimaid juurdepääsu muutjaid C ++-s. Isikuandmete liikmete ulatus jääb klassi sisse, seetõttu pääseb klassi sisene funktsioon juurde privaatseks tunnistatud klassi liikmetele. Sest see tähendab privaatselt ainult seda, et otsustate, kes saab teie asju kasutada (näiteks sõber) või mitte. Te ei pääse liikmetele otse ühegi klassi või funktsiooni kaudu, mis on väljaspool klassi. Sõbra funktsiooni (nagu ma ütlesin, võib teie asju kasutada) saab kasutada klassi isiklikele andmetele juurdepääsu saamiseks. Privaatsetele andmetele liikumisel mujal kui klassis, saate kompilatsiooniaja vea.

Kood:

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

Väljund:

Ülaltoodud koodi abil pääseme kaudselt juurde klassi isiklikele andmetele, kasutades kaudselt klassi avalike liikmete funktsioone.

3. Kaitstud

Viimane juurdepääsunäitaja, mida on kõige olulisem kasutada juurdepääsu muutjatena C ++ -s, kuna selle käitumine on üsna sarnane privaatse juurdepääsu muutjaga. Kaitstud andmeliikmetele või funktsioonidele ei pääse otse juurde muudest klassidest. Kaitstud liikmetele juurdepääsu saamiseks võite kasutada sõbrafunktsiooni, kuna see võimaldab seda funktsiooni. Kaitstud modifikaatoril on mõned piirangud. Kaitstuks kuulutatud liikmeid saab kaitsta ainult järgmise tasemeni, kui see muutub privaatseks.

Kood:

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

Väljund:

Ülaltoodud koodist näete, et id_protect kuulutatakse kaitstuks ja sellele pääseb juurde tuletatud klassi liikmefunktsiooni abil. See tähendab, et pääsete baasklassi kaitstud andmeliikmele juurde tuletatud klassi liikmefunktsiooni abil.

Juurdepääsumuundurite eelised rakenduses C ++

Allpool on C ++-sisesed juurdepääsu modifikaatorite erinevad eelised:

  • Juurdepääsu modifikaator annab teile volitused teie andmeid kontrollida sõltuvalt stsenaariumidest. Kui töötate pangadomeenis, peate oma andmete teiste kasutajate eest varjamiseks kasutama privaatsete andmete liikmeid, volitus on teie käes. Saate need soovi korral avalikustada, kuid see ei ole suurepärane lähenemisviis, sest sel juhul saab igaüks teie andmeid igal ajal muuta
  • Kõikidest põhiklassi avalikest liikmetest saavad tuletatud klassi avalikud liikmed. Samal viisil saavad kõik põhiklassi kaitstud liikmed tuletatud klassi kaitstud liikmeteks, mis aitab teil andmete haldamist hõlpsalt igas aspektis, kuna nagu näete, ei pääse nende liikmete juurdepääsul muudatusi, kui kasutate oma programmeerimiskeeles avalikku pärandit .
  • Erapärandi korral saavad kõik põhiklassi avalikud liikmed tuletatud klassi eraliikmeteks. Samal viisil saavad kõik põhiklassi kaitstud liikmed tuletatud klassi eraliikmeteks, samas kui kaitstud pärimise stsenaariumi korral saavad kõik põhiklassi avalikud liikmed tuletatud klassi kaitstud liikmeteks ja kõik põhiklassi kaitstud liikmed saavad tuletatud klassi kaitstud liikmeteks. Pange tähele, et C ++-s töötab juurdepääsu spetsifikatsioon klassi, mitte objektipõhiselt.

Järeldus

Mitmetel programmeerimiskeeltel pole privaatset ja kaitstud juurdepääsu, seetõttu saab iga kasutaja seda kasutada soovitud viisil. C ++ kodeerijad ei usalda kasutajaid, nii et neil pole lubatud seda kasutada. Kuna avalike andmete liikmed võivad vigadele või häkkeritele tõsist potentsiaalset ohtu kujutada.

Soovitatavad artiklid

See on juhend pääsemuunduritele C ++-s. Siin käsitleme C ++-s juurdepääsetavate muutjate tüüpe koos selle näidete ja eelistega. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. Juurdepääs Java muutjatele
  2. Kapseldamine C ++
  3. C ++ käsud
  4. Parim C ++ kompilaator
  5. Juurdepääsumuundurite tüübid C # -s
  6. Kapseldamine JavaScripti
  7. C ++ 11 peamist funktsiooni ja eelist

Kategooria: