Einführung in Access Modifiers in C ++

Der Schutz von Daten ist seit langem im Trend, da er der wichtigste Bestandteil jeder Domain ist. Wenn Sie in die falsche Hand gehen, werden Sie viel leiden. Um Ihre Daten systematisch zu verarbeiten, bietet die objektorientierte Programmierung eine herausragende Funktion, das sogenannte Datenverstecken. Dieses Konzept kann mit Access-Modifikatoren in C ++ implementiert werden. Dies sind Schlüsselwörter, mit denen der Zugriff auf Methoden, Klassen und andere Member festgelegt wird. Public, Private und Protected werden in objektorientierten Programmiersprachen als Access Modifiers oder Access Specifiers bezeichnet. Um zu verhindern, dass die Funktionen eines Programms direkt auf die interne Darstellung einer Klasse zugreifen, wird das Ausblenden von Daten verwendet.

Arten von Zugriffsmodifikatoren in C ++

Es gibt drei Arten von Zugriffsmodifikatoren in C ++

  1. Öffentlichkeit
  2. Privat
  3. Geschützt

Werfen wir einen Blick auf diese Modifikatoren mit Beispielen:

1. Öffentlich

Wie der Name schon sagt, für alle verfügbar. Alle Mitglieder der Klasse stehen allen zur Verfügung, nachdem sie als öffentlich deklariert wurden. Auf ein öffentliches Mitglied kann an einer beliebigen Stelle außerhalb der Klasse, jedoch innerhalb eines Programms, zugegriffen werden. Auf Datenelemente können auch andere Klassen zugreifen, wenn sie als öffentlich deklariert sind. Da der öffentliche Modifikator keine Einschränkungen enthält, können wir den Punktoperator (.) Verwenden, um direkt auf Funktionen und Daten der Mitglieder zuzugreifen.

Code:

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

Ausgabe:


2. Privat

Ein privater Modifizierer ist einer der besten Zugriffsmodifizierer in C ++. Der Bereich der privaten Datenelemente bleibt innerhalb der Klasse, daher kann die Funktion innerhalb der Klasse auf als privat deklarierte Klassenelemente zugreifen. Denn das ist, was privat bedeutet, dass nur Sie entscheiden, wer Ihre Sachen benutzen kann (wie ein Freund) oder nicht. Sie können nicht mit Objekten oder Funktionen außerhalb der Klasse direkt auf Mitglieder zugreifen. Die Funktion eines Freundes (wie gesagt, er kann Ihre Sachen benutzen) kann verwendet werden, um auf private Datenmitglieder der Klasse zuzugreifen. Beim Zugriff auf private Datenmember von einer beliebigen Stelle außerhalb der Klasse wird beim Kompilieren ein Fehler angezeigt.

Code:

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

Ausgabe:

Mit dem obigen Code können wir indirekt auf private Datenelemente einer Klasse zugreifen, indem wir die öffentlichen Elementfunktionen der Klasse indirekt verwenden.

3. Geschützt

Der letzte Zugriffsspezifizierer, der am wichtigsten als Zugriffsmodifizierer in C ++ verwendet wird, da sein Verhalten einem privaten Zugriffsmodifizierer sehr ähnlich ist. Geschützte Datenelemente oder Funktionen können nicht direkt von anderen Klassen aus aufgerufen werden. Sie können eine Friend-Funktion verwenden, um auf geschützte Mitglieder zuzugreifen, da diese Funktion aktiviert ist. Es gibt einige Einschränkungen für den geschützten Modifikator. In protected deklarierte Mitglieder können nur bis zur nächsten Stufe geschützt werden, dann wird sie privat.

Code:

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

Ausgabe:

Anhand des obigen Codes können Sie erkennen, dass id_protect als geschützt deklariert ist und mit der Mitgliedsfunktion der abgeleiteten Klasse zugegriffen werden kann. Dies bedeutet, dass Sie mithilfe der Elementfunktion der abgeleiteten Klasse auf das geschützte Datenelement der Basisklasse zugreifen können.

Vorteile von Zugriffsmodifikatoren in C ++

Nachfolgend sind die verschiedenen Vorteile von Access Modifiers in C ++ aufgeführt:

  • Mit dem Zugriffsmodifikator haben Sie die Berechtigung, Ihre Daten abhängig von den Szenarien zu steuern. Wenn Sie in einer Bankdomäne arbeiten, müssen Sie private Datenmitglieder verwenden, um Ihre Daten vor anderen Benutzern verborgen zu halten. Die Autorität liegt in Ihrer Hand. Sie können sie veröffentlichen, wenn Sie möchten, aber dies ist kein guter Ansatz, da in diesem Fall jeder Ihre Daten jederzeit ändern kann
  • Alle öffentlichen Mitglieder der Basisklasse werden öffentliche Mitglieder der abgeleiteten Klasse. Auf die gleiche Weise werden alle durch die Basisklasse geschützten Mitglieder zu geschützten Mitgliedern der abgeleiteten Klasse, was Ihnen bei der einfachen Verwaltung von Daten in allen Aspekten hilft, da Sie sehen, dass sich beim Zugriff auf diese Mitglieder keine Änderungen ergeben, wenn Sie die öffentliche Vererbung in Ihrer Programmiersprache verwenden .
  • Im Szenario der privaten Vererbung werden alle öffentlichen Mitglieder der Basisklasse zu privaten Mitgliedern der abgeleiteten Klasse. Auf die gleiche Weise werden alle durch die Basisklasse geschützten Mitglieder zu privaten Mitgliedern der abgeleiteten Klasse, während in einem geschützten Vererbungsszenario alle öffentlichen Mitglieder der Basisklasse zu geschützten Mitgliedern der abgeleiteten Klasse und alle durch die Basisklasse geschützten Mitglieder zu geschützten Mitgliedern der abgeleiteten Klasse werden. Beachten Sie, dass in C ++ die Zugriffsspezifikation auf Klassenbasis und nicht auf Objektbasis funktioniert.

Fazit

Einige Programmiersprachen haben keinen privaten und geschützten Zugriff, daher kann jeder Benutzer sie nach Belieben verwenden. C ++ - Codierer vertrauen den Benutzern nicht und dürfen sie daher nicht verwenden. Als öffentliche Datenmitglieder können sie ein ernstes potenzielles Risiko für Bugs oder Hacker darstellen.

Empfohlene Artikel

Dies ist eine Anleitung zu Access Modifiers in C ++. Hier diskutieren wir die Arten von Zugriffsmodifikatoren in C ++ mit ihren Beispielen und einigen Vorteilen. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren.

  1. Zugriffsmodifikatoren in Java
  2. Kapselung in C ++
  3. C ++ Befehle
  4. Bester C ++ Compiler
  5. Arten von Zugriffsmodifikatoren in C #
  6. Kapselung in JavaScript
  7. Top 11 Features und Vorteile von C ++