Úvod do modifikátorů přístupu v C ++

Ochrana dat je dlouhodobě trendem, protože je nejdůležitější součástí každé domény. Pokud se dostane do nesprávné ruky, budete hodně trpět. Pro systematické zacházení s vašimi daty nabízí objektově orientované programování význačnou funkci známou jako skrytí dat. Tento koncept lze implementovat v C ++ pomocí modifikátorů přístupu. Jsou to klíčová slova, která se používají k nastavení dostupnosti metod, tříd a dalších členů. Veřejné, soukromé a chráněné se v objektově orientovaných programovacích jazycích označuje jako modifikátory přístupu nebo specifikátory přístupu. Aby se zabránilo přímému přístupu funkcí programu k vnitřní reprezentaci třídy, používá se skrývání dat.

Typy modifikátorů přístupu v C ++

V C ++ jsou 3 typy modifikátorů přístupu

  1. Veřejnost
  2. Soukromé
  3. Chráněný

Podívejme se na tyto modifikátory s příklady:

1. Veřejné

Jak název napovídá, je k dispozici všem. Všichni členové třídy budou k dispozici všem poté, co je prohlásíte za veřejní. Veřejný člen je přístupný kdekoli mimo třídu, ale v rámci programu. Členové dat mohou také získat přístup k jiným třídám, jsou-li prohlášeny za veřejné. Protože ve veřejném modifikátoru neexistují žádná omezení, můžeme použít přímý přístup k funkcím a datům členů (.).

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

Výstup:


2. Soukromé

Soukromý modifikátor je jedním z nejlepších modifikátorů přístupu v C ++. Rozsah členů soukromých dat zůstává uvnitř třídy, proto funkce uvnitř třídy může přistupovat k členům třídy prohlášeným za soukromé. Protože to je to, co soukromé znamená, pouze vy rozhodujete, kdo může vaše věci (jako přítel) použít nebo ne. K členům nemůžete přistupovat přímo pomocí jakéhokoli objektu nebo funkce, která je mimo třídu. Funkce přítele (jak jsem řekl, může používat vaše věci) lze použít k přístupu k soukromým datům členů třídy. Při přístupu k členům soukromých dat odkudkoli mimo třídu se zobrazí chyba kompilace.

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

Výstup:

Pomocí výše uvedeného kódu můžeme přistupovat k soukromým datovým členům třídy nepřímo pomocí nepřímo veřejných funkcí třídy.

3. Chráněno

Poslední specifikátor přístupu, který je nejdůležitějším používán jako modifikátory přístupu v C ++, protože jeho chování je velmi podobné modifikátoru soukromého přístupu. Chráněné datové členy nebo funkce nemohou být přístupné přímo z jiných tříd. Funkci přítele můžete použít k přístupu k chráněným členům, protože to umožňuje tuto funkci. Chráněný modifikátor má určitá omezení. Členové prohlášeni za chráněné mohou být chráněni pouze do další úrovně, než se stanou soukromými.

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

Výstup:

Z výše uvedeného kódu můžete vidět, že id_protect je deklarován jako chráněný a lze k němu přistupovat pomocí členské funkce odvozené třídy. To znamená, že můžete přistupovat k chráněnému datovému členu základní třídy pomocí členské funkce odvozené třídy.

Výhody modifikátorů přístupu v C ++

Níže jsou uvedeny různé výhody modifikátorů přístupu v C ++:

  • Modifikátor přístupu vám dává oprávnění ke kontrole vašich dat v závislosti na scénářích. Pokud pracujete v bankovní doméně, musíte použít členy soukromých dat k ochraně vašich dat před ostatními uživateli, oprávnění je ve vaší ruce. Můžete je zveřejnit, pokud chcete, ale nebude to skvělý přístup, protože v takovém případě může kdokoli kdykoli změnit vaše data
  • Všichni veřejní členové základní třídy se stanou veřejnými členy odvozené třídy. Stejně tak se každý chráněný člen základní třídy stane chráněným členem odvozené třídy, což vám pomůže při snadné správě dat ve všech aspektech, protože jak vidíte, nedochází ke změnám v přístupu k těmto členům, pokud používáte veřejnou dědičnost ve svém programovacím jazyce. .
  • Ve scénáři soukromého dědictví se veškerý veřejný člen základní třídy stane soukromým členem odvozené třídy. Stejně tak se každý chráněný člen základní třídy stane soukromým členem odvozené třídy, zatímco ve scénáři chráněné dědičnosti se veškerý veřejný člen základní třídy stane chráněným členem odvozené třídy a veškerý chráněný člen základní třídy se stane chráněným členem odvozené třídy. Všimněte si, že specifikace přístupu C ++ funguje na základě jednotlivých tříd, nikoli na základě jednotlivých objektů.

Závěr

Několik programovacích jazyků nemá soukromý a chráněný přístup, proto jej může použít libovolný uživatel tak, jak chce. C ++ kodéry nebudou uživatelům důvěřovat, takže je nebudou moci používat. Členové veřejných dat mohou představovat vážné potenciální riziko pro chyby nebo hackery.

Doporučené články

Toto je průvodce modifikátory přístupu v C ++. Zde diskutujeme typy modifikátorů přístupu v C ++ spolu s jejich příklady a některými výhodami. Další informace naleznete také v následujících článcích

  1. Přístup k modifikátorům v Javě
  2. Zapouzdření v C ++
  3. Příkazy C ++
  4. Nejlepší kompilátor C ++
  5. Typy modifikátorů přístupu v C #
  6. Zapouzdření do JavaScriptu
  7. Prvních 11 funkcí a výhod C ++

Kategorie: