Въведение в модификаторите за достъп в C ++

Защитата на данните е в тенденция отдавна, тъй като това е най-важната част от всеки домейн. Ако отиде в грешната ръка, тогава ще страдате много. За да обработвате вашите данни по систематичен начин, обектно-ориентираното програмиране предлага забележителна функция, известна като скриване на данни. Тази концепция може да бъде реализирана в C ++ с помощта на модификатори на Access. Те са ключови думи, които се използват за задаване на достъпността на методи, класове и други членове. Public, Private и Protected е известен като Модификатори на достъп или Спецификатори на достъп на езици за програмиране, ориентирани към обекта. За да се предотвратят функциите на програма за директен достъп до вътрешното представяне на клас, се използва скриване на данни.

Видове модификатори на достъп в C ++

Има 3 вида модификатори на достъп в C ++

  1. обществен
  2. частен
  3. Защитена

Нека разгледаме тези модификатори с примери:

1. Публична

Както подсказва името, достъпно за всички. Всички членове на класа ще бъдат на разположение на всички, след като ги обявят за публични. Публичен член може да получи достъп навсякъде извън класа, но в рамките на програма. Членовете на данните могат да имат достъп и от други класове, ако са обявени за публични. Тъй като няма ограничения в публичния модификатор, можем да използваме (.) Точка оператора за директен достъп до функциите и данните на членовете.

Код:

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

изход:


2. Частен

Частният модификатор е един от най-добрите модификатори на достъп в C ++. Обхватът на членовете на личните данни остава вътре в класа, затова функцията вътре в класа може да получи достъп до членове на класа, декларирани като частни. Защото това означава, че личното означава само вие да решите кой може да използва вашите неща (като приятел) или не. Не можете да получите достъп до членове директно от всеки обект или функция, която е извън класа. Функцията на приятел (както казах, може да използва вашите неща) може да се използва за достъп до членове на частни данни от класа. Ще получите грешка във времето за компилиране, докато осъществявате достъп до членове на лични данни от всяка точка извън класа.

Код:

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

изход:

Чрез използването на горния код можем да осъществим косвено достъп до частните данни на членовете на клас, като използваме косвено функциите на публичните членове на класа.

3. Защитени

Последният спецификатор за достъп, най-важното използван като модификатори на достъп в C ++, тъй като поведението му е доста подобен на модификатор за частен достъп. Защитените членове или функции на данни не могат да имат достъп директно от други класове. Можете да използвате приятел функция за достъп до защитени членове, тъй като тя позволява тази функционалност. Има някои ограничения за защитения модификатор. Членовете, декларирани като защитени, могат да бъдат защитени само до следващото ниво, след което то става частно.

Код:

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

изход:

От горния код можете да видите, че id_protect е деклариран като защитен и може да бъде достъпен с помощта на функцията член на производния клас. Това означава, че можете да получите достъп до защитения член на данните от базовия клас, като използвате функцията member на производен клас.

Предимства на модификаторите на достъп в C ++

По-долу са различните предимства на Модификаторите на достъп в C ++:

  • Модификаторът на достъп ви предоставя правомощието да контролирате вашите данни в зависимост от сценариите. Ако работите в банков домейн, тогава трябва да използвате членове на лични данни, за да запазите данните си скрити от други потребители, властта е в ръцете ви. Можете да ги направите публично достояние, ако искате, но няма да е чудесен подход, защото в този случай всеки може да промени вашите данни по всяко време
  • Всички публични членове на базовия клас стават публични членове на производния клас. По същия начин, всички членове, защитени от базовия клас, стават защитени членове на производния клас, което ще ви помогне лесно да управлявате данни във всеки аспект, тъй като както виждате, няма промяна в достъпа до тези членове, ако използвате публично наследяване на вашия език на програмиране,
  • В сценарий за частно наследяване, всички публични членове на базовия клас стават частни членове на производния клас. По същия начин, всички защитени членове от базовия клас стават частни членове на производен клас, докато при сценарий на защитено наследство, всички публични членове на базовия клас стават защитени членове на производен клас, а всички защитени членове на базовия клас стават защитени членове на производния клас. Обърнете внимание, че в C ++ спецификацията за достъп работи за клас, а не за база на обект.

заключение

Няколко езика за програмиране нямат частен и защитен достъп, поради което всеки потребител може да го използва по желания от тях начин. C ++ кодерите няма да имат доверие на потребителите, така че не им е позволено да го използват. Тъй като членовете на публичните данни могат да представляват сериозен потенциален риск за бъгове или хакери.

Препоръчителни статии

Това е ръководство за модификатори за достъп в C ++. Тук обсъждаме видовете модификатори на достъп в C ++ заедно с неговите примери и някои предимства. Можете също да разгледате следните статии, за да научите повече-

  1. Достъп до модификатори в Java
  2. Капсулиране в С ++
  3. C ++ команди
  4. Най-добрият компилатор на C ++
  5. Видове модификатори на достъп в C #
  6. Капсулиране в JavaScript
  7. Топ 11 функции и предимства на C ++