Empfohlen, 2019

Tipp Der Redaktion

Unterschied zwischen privat und geschützt in C ++

In der C ++ - Programmiersprache sind drei Arten von Zugriffsschutz zum Ausblenden der Daten definiert. Das Ausblenden von Daten ist ein wesentlicher Bestandteil der objektorientierten Programmierung. Die privaten und geschützten Schlüsselwörter bieten die Zugriffsschutzstufe zum Ausblenden der Daten und Funktionen innerhalb einer Klasse. Die privaten Mitglieder können nicht vererbt werden, während das geschützte Mitglied in einem begrenzten Bereich vererbt werden kann. Diese Spezifizierer geben die Sichtbarkeit der Mitglieder an, bei denen private mehr einschränkend als geschützt sind.

Vergleichstabelle

Basis zum VergleichPrivatgeländeGeschützt
Vererbung der Eigenschaft an die abgeleitete Klasse
Abgeleitete Klasse kann nicht auf private Mitglieder der Basisklasse zugreifen.Abgeleitete Klasse kann auf geschützte Mitglieder der Basisklasse zugreifen.
Zugänglichkeit
Die privaten Mitglieder der Klasse sind außerhalb des Klassenbereichs nicht erreichbar.Auf die geschützten Mitglieder der Klasse kann aus dem Klassenbereich nicht zugegriffen werden, mit Ausnahme der unmittelbar abgeleiteten Klasse.
Zugänglich aus eigener KlasseJaJa
Zugriff über abgeleitete KlasseNeinJa
Von außen zugänglichNeinNein

Definition von Privat

Die als privat deklarierten Klassenmitglieder können nur innerhalb der Klasse abgerufen werden. Mit anderen Worten, auf die im privaten Abschnitt der Klasse deklarierten Member kann nur von der Friend-Funktion und der Member-Funktion der Klasse zugegriffen werden. Private Mitglieder können nicht direkt für die abgeleitete Klasse abgerufen werden und sind außerhalb des Klassenbereichs nicht verfügbar.

Das C ++ - Programm zeigt das Konzept privater Zugriffsbezeichner.

 #include using namespace std; Klasse A {privat: int i; public: void get () {cout <> i; }}; Klasse B: public A {public: void show () {i ++; cout << "\ n Ihre eingegebene Nummer nach incrementcpp"> # include using Namespace std; Klasse Säugetier {public: void mammalMethod (void) {cout << "Es fällt unter die Säugetierkategorie." < 

In dem oben angegebenen Programm wird ein Objekt der Kindklasse mit dem Namen "ob" erstellt, und die Memberfunktion der Elternklasse kann über die Kindmethode "marine_mammalMethod" aufgerufen werden. Auf die übergeordnete Methode kann jedoch nicht direkt mit dem Objekt „ob“ zugegriffen werden.

Definition von Geschützt

Die in einer Klasse als geschützt deklarierten Klassenmitglieder können nur über die Member- und Friend-Funktion der Klasse aufgerufen werden. Auf diese geschützten Member kann nicht aus dem Klassenbereich mit Ausnahme der untergeordneten Klasse (unmittelbar davon abgeleitet) zugegriffen werden. Es dient dem eingeschränkten Zweck der Vererbung und erbt die Eigenschaften in begrenztem Umfang.

Das unten angegebene C ++ - Programm veranschaulicht das Konzept geschützter Zugriffsbezeichner.

 #include using namespace std; class account1 {protected: int x, y; // für abgeleitete Klassen zugänglich public: void set (int a, int b) {x = a; y = b; } void show () {cout < 

Im obigen Beispiel erben die untergeordnete Klasse die Eigenschaften der Basisklasse, da die Datenmitglieder als public oder protected deklariert sind. Es wäre nicht möglich, wenn x und y in der Basisklasse als privat deklariert worden wären.

Hauptunterschiede zwischen privat und geschützt in C ++

  1. Das protected-Schlüsselwort kann zum Erstellen von Klassenmitgliedern verwendet werden, die für ihre Klasse privat sind, aber von der abgeleiteten Klasse geerbt und verwendet werden können. Umgekehrt ist dies bei der Verwendung von privat nicht möglich, da private Mitglieder nicht direkt an die abgeleitete Klasse vererbt werden können.
  2. Wenn die Basisklasse mit dem privaten Zugriffsbezeichner geerbt wird, werden alle öffentlichen und geschützten Mitglieder der Basisklasse zu privaten Mitgliedern der abgeleiteten Klasse. Im Gegensatz dazu ist dies bei geschützten Zugriffsspezifizierern nicht der Fall.

Fazit

Privat und geschützt sind die Zugriffsbezeichner, mit denen die Sichtbarkeit der Klasse und ihrer Member unterschiedlich festgelegt wird. Geschützt ist jedoch flexibler als privat.

Top