Bevezetés a hozzáférés-módosítókba a C ++-ban

Az adatok védelme már régóta a trend, mivel ez minden domain legfontosabb része. Ha rossz kézbe kerül, akkor nagyon sokat fog szenvedni. Az adatok szisztematikus kezelése érdekében az objektum-orientált programozás az adatok elrejtése néven ismert funkciót kínál. Ez a koncepció megvalósítható a C ++ programban az Access módosítókkal. Kulcsszavak, amelyek segítségével a módszerek, osztályok és más tagok hozzáférhetõségét meghatározzák. Objektum-orientált programozási nyelveken a nyilvános, a magán és a védett hozzáférést módosítóként vagy hozzáférés-meghatározóként ismertek. Annak elkerülése érdekében, hogy a program funkciói közvetlenül hozzáférjenek az osztály belső ábrázolásához, az adatok elrejtését használják.

A hozzáférés-módosítók típusai a C ++-ban

A C ++ rendszerben 3 típusú hozzáférés-módosító található

  1. Nyilvános
  2. Magán
  3. Védett

Vessen egy pillantást ezekre a módosítókra példákkal:

1. Nyilvános

Ahogy a neve is sugallja, mindenki számára elérhető. Az osztály összes tagja mindenki számára elérhető lesz, miután nyilvánossá tették őket. A nyilvános tagok bárhová elérhetők az osztályon kívül, de egy programon belül. Az adattagokat más osztályok is elérhetik, ha nyilvánosságra hozzák. Mivel a nyilvános módosítóban nincsenek korlátozások, a (.) Pont operátort használhatjuk a tagok funkcióinak és adatainak közvetlen eléréséhez.

Kód:

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

Kimenet:


2. Magán

A privát módosító az egyik legjobb hozzáférési módosító a C ++-ban. A személyes adatok tagjainak hatóköre az osztályon belül marad, ezért érhető el az osztályon belüli funkció a privátnak nyilvánított osztály tagjai számára. Mert ez azt jelenti, hogy a magántulajdon azt jelenti, hogy csak Ön dönti el, ki tudja használni a dolgait (például egy barát), vagy sem. A tagokhoz közvetlenül az osztályon kívüli objektumok vagy funkciók nem férhetnek hozzá. Egy barát funkciója (amint mondtam, hogy felhasználhatja a dolgait) felhasználható az osztály személyes adatainak elérésére. Fordítási idő hibát fog kapni, miközben az osztályon kívül bárhonnan hozzáfér a személyes adatok tagjaihoz.

Kód:

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

Kimenet:

A fenti kód használatával közvetett módon az osztály nyilvános tagfunkcióit felhasználva férhetünk hozzá az osztály magán adat tagjaihoz.

3. Védett

Az utolsó hozzáférés-meghatározó, amelyet a legfontosabban a hozzáférés-módosítóként használják a C ++-ban, mivel viselkedése nagyon hasonlít egy privát hozzáférés-módosítóhoz. A védett adatok tagjai vagy funkciói nem érhetők el közvetlenül más osztályokból. Használhatja a barát funkciót a védett tagok eléréséhez, mivel ez lehetővé teszi ezt a funkciót. Van néhány korlátozás a védett módosítóra. A védettként bejelentett tagokat csak a következő szintre lehet megvédeni, akkor ez magántulajdonba kerül.

Kód:

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

Kimenet:

A fenti kódból látható, hogy az id_protect védettnek nyilvánul, és a származtatott osztály tag funkciójával érhető el. Ez azt jelenti, hogy az alaposztály védett adattagjához hozzáférhet a származtatott osztály tag funkciójával.

A hozzáférés-módosítók előnyei a C ++-ban

Az alábbiakban bemutatjuk az Access Modifiers különféle előnyeit a C ++-ban:

  • A hozzáférés-módosító felhatalmazást ad az Ön adatainak a forgatókönyvektől függő irányítására. Ha banki domainben dolgozik, akkor privát adattagokat kell használnia, hogy adatait rejtették a többi felhasználótól. A jogosultság a kezedben van. Nyilvánossá teheti őket, ha akarod, de ez nem lesz nagyszerű megközelítés, mert ebben az esetben bárki bármikor megváltoztathatja az Ön adatait
  • Minden alaposztályú nyilvános tag a származtatott osztály nyilvános tagjává válik. Ugyanezen módon az összes alaposztályú védett tag a származtatott osztály védett tagjaivá válik, amely minden szempontból segítséget nyújt az adatok könnyed kezelésében, mivel amint láthatja, ezeknek a tagoknak a hozzáférése nem változtat, ha nyilvános örökséget használsz a programozási nyelven. .
  • A magán öröklés forgatókönyvében az összes alaposztályú nyilvános tag a származtatott osztály magántagjaivá válik. Ugyanezen módon minden alaposztályú védett tag a származtatott osztály magántagjaivá válik, míg a védett öröklés esetén minden alaposztályú nyilvános tag a származtatott osztály védett tagjaivá válik, és minden alaposztályú védett tag a származtatott osztály védett tagjává válik. Vegye figyelembe, hogy a C ++ esetében a hozzáférés-specifikáció osztályonként, nem objektumonként működik.

Következtetés

Számos programozási nyelvnek nincs privát és védett hozzáférése, ezért bármely felhasználó használhatja azt a kívánt módon. A C ++ kódolók nem bíznak a felhasználókban, így nem használhatják. Mivel a nyilvános adatok tagjai súlyos potenciális kockázatot jelenthetnek a hibák és a hackerek számára.

Ajánlott cikkek

Ez egy útmutató a Hozzáférés-módosítókhoz a C ++-ban. Itt tárgyaljuk a C ++ típusú hozzáférés-módosítók típusait, példáit és néhány előnyeit. A következő cikkeket is megnézheti további információkért -

  1. Hozzáférés a Java módosítóihoz
  2. Beágyazás a C ++ -ba
  3. C ++ parancsok
  4. A legjobb C ++ fordító
  5. A hozzáférés-módosítók típusai a C # -ben
  6. Beágyazás a JavaScript-be
  7. A C ++ 11 legfontosabb tulajdonságai és előnyei

Kategória: