Was ist der Unterschied zwischen privaten und geschützten Mitgliedern von C ++ - Klassen

Was ist der Unterschied zwischen privaten und geschützten Mitgliedern von C ++ - Klassen
C ++ ist eine objektorientierte Programmiersprache (OOP). Eine der wesentlichen Merkmale der Klasse ist die Möglichkeit, die Zugangsniveau für ihre Mitglieder anzugeben. In objektorientierter Programmierung, Zugriffsspezifizierer werden verwendet, um die Sichtbarkeit und Zugänglichkeit der Felder und Methoden einer Klasse zu kontrollieren. Geschützt, öffentlich, Und Privatgelände Zugriffsstufen sind die drei grundlegenden Arten von Zugangsniveaus in C++.

In dieser Beschreibung werden wir den Unterschied zwischen den beiden Mains diskutieren ZugriffsspezifiziererS, Privatgelände Und geschützt Mitglieder einer C ++ - Klasse.

Privatzugriffsspezifizierer

Privatmitglieder werden mit dem Schlüsselwort deklariert 'Privatgelände''. Der Privatzugriffsspezifizierer begrenzt den Zugang zu Klassenmitgliedern nur auf die Klasse selbst. Code außerhalb der Klasse kann auf ein privates Mitglied nicht zugreifen oder dies ändern kann. Das bedeutet, dass nur die in der Klasse deklarierten Methoden auf die zugreifen und arbeiten können Privatmitglieder, Nicht einmal abgeleitete Klassen können zugreifen Privatmitglieder. Eine häufige Verwendung von Privatmitglieder ist, den richtigen Betrieb einer Klasse zu gewährleisten. Privatmitglieder werden verwendet, um die Klassendaten zu verkapulieren und den Benutzern der Klasse eine Abstraktionsniveau bereitzustellen.

#enthalten
Verwenden von Namespace STD;
Klassenspieler
Privatgelände:
Zeichenfolge Name;
int Alter;
öffentlich:
void GetPlayer ()

Cout << "Enter name: ";
Cin >> Name;
Cout << "Enter age: ";
Cin >> Alter;

void Showplayer ()

Cout << "Name: " << name << endl;
Cout << "Age: " << age << endl;

;
int main ()

Spieler PL;
Pl.GetPlayer ();
Pl.showPlayer ();
Rückkehr 0;

Im obigen Code verwenden wir die öffentlichen Mitgliedermethoden GetPlayer () Und Showplayer () Zu den beiden zugreifen Privatgelände Mitglieder Name Und Alter. Der GetPlayer () Die Funktion erhält die Eingabe von den Benutzern und zeigt sie über den Bildschirm über den Bildschirm an Showplayer () Funktion.

Ausgang

Geschützter Zugriffsspezifizierer

Geschützte Mitglieder einer Klasse kann sowohl von den abgeleiteten Klassen als auch von den Mitgliedsfunktionen der Klasse selbst zugegriffen werden. Geschützte Mitglieder werden verwendet, um einen Zugang zu den abgeleiteten Klassen zu gewähren, ohne die Implementierungsdetails der Außenwelt auszusetzen. Geschützte Mitglieder werden mit dem Schlüsselwort deklariert 'geschützt' und das Colon (:) Charakter. Geschützte Mitglieder Lassen Sie eine Klasse erweitert und modifiziert werden, ohne ihre Integrität zu beeinträchtigen. Eine abgeleitete Klasse kann verwenden geschützte Mitglieder das Verhalten einer Basisklasse zu verfeinern oder anzupassen.

Hier ist ein Beispiel für eine Klasse mit geschützte Mitglieder:

#enthalten
Verwenden von Namespace STD;
Klassenspieler
Privatgelände:
Zeichenfolge Name;
int Alter;
geschützt:
int Ziele;
öffentlich:
void GetPlayer ()

Cout -Name;
Cout -Alter;

void Showplayer ()

Cout << "Name: " << name << endl;
Cout << "Age: " << age << endl;

;
Klasse Player1: Public Player
Privatgelände:
Streichland;
öffentlich:
void set_goals (int g)

Ziele = g;

void GetPlayer1 ()

GetPlayer ();
Cout Country;

void Showplayer1 ()

Cout << "goals: " << goals << endl;
showPlayer ();
Cout << "Country: " << country << endl;

;
int main ()

Player1 PL;
Pl.set_goals (101);
Pl.GetPlayer1 ();
Pl.showPlayer1 ();
Rückkehr 0;

Der Spieler Klasse umfasst zwei Privatmitglieder, Name Und Alter, eins geschützt Mitglied, Ziele, Und Privatgelände Mitglieder werden im Inneren der verwendet öffentlich Mitgliedsfunktionen, GetPlayer () Und Showplayer (). Es gibt zwei Klassen, Spieler Und Spieler1, Beide sind Basisklassen. Eins Privatgelände Mitglied, Land, und drei öffentlich Mitgliedermethoden bilden die Spieler1 Klasse. Ziele setzen() wird verwendet, um das geschützte Mitglied zu ändern Ziele' Wert. GetPlayer1 () ruft die GetPlayer () Mitgliedsfunktion der Spieler Klasse beim zusätzlichen Abrufen der Input für das Land. Ähnlich wie dies, Showplayer1 () ruft die Showplayer () Mitgliedsfunktion und druckt die Ziele Und Land Werte.

Ausgang

Unterschied zwischen privaten und geschützten Mitgliedern von C ++ - Klassen

Hier sind einige der wichtigsten Unterschiede zwischen aufgeführt Privatgelände Und Geschützt Mitglieder von C ++ - Klassen.

1: Umfang und Funktionalität

Bei der Betrachtung der Verwendung von Zugangspezifikatoren ist es entscheidend, sorgfältig über die nachzudenken Umfang Und Funktionalität des Programms. A Privatzugriffsspezifizierer Bietet das höchste Sicherheitsniveau und vermeidet unbeabsichtigten Zugriff auf Variablen und Methoden. Andererseits a geschützter Zugriffsspezifizierer Bietet ein umfangreicheres Angebot an Zugänglichkeit und Flexibilität, was bei der Planung der Erben abgeleitete Klassen von einer Basisklasse unerlässlich ist.

2: Zugangsniveau

Der Hauptunterschied zwischen Privatgelände Und geschützte Mitglieder ist der Zugangsgrad, den sie bieten. Geschützt Mitglieder können sowohl durch die abgeleiteten Klassen der Klasse als auch für Mitgliedsfunktionen zugänglich sein, aber jedoch Privatgelände Mitglieder dürfen nur von den Mitgliedsfunktionen der Klasse erhalten werden.

3: Kapselung der Klasse

Ein weiterer entscheidender Unterschied zwischen Privatgelände Und geschützt Mitglieder sind ihre Rolle bei der Aufrechterhaltung der Kapselung der Klasse. Um die Daten zu isolieren und den Benutzern der Klasse ein gewisses Maß an Abstraktion zu geben, Privatgelände Mitglieder sind beschäftigt. Geschützt Die Mitglieder werden verwendet, um die Erbschaftsstruktur zu verwalten und den Zugang zu Basisklassenmitgliedern durch abgeleitete Klassen zu gewähren.

Abschließende Gedanken

Privatgelände Und geschützte Mitglieder sind die beiden wesentlichen Zugriffsstufen in der C ++ - Klasse. Der Privatgelände Der Zugriffsspezifizierer macht die Klassenmitglieder für alle externen Benutzer unzugänglich und wird verwendet, um Informationen zu erhalten Privatgelände Innerhalb der Klasse. Dagegen a geschützt Der Zugriffsspezifizierer ermöglicht den Zugriff auf Klassenmitglieder nur durch abgeleitete Klassen, wird zur Bereitstellung von Basisklassenfunktionen und Änderungen, ohne das Verhalten der Basisklasse zu ändern. Die Zugangsniveau der Klassenmitglieder spielt eine entscheidende Rolle bei der Aufrechterhaltung der Kapselung der Klasse und bietet einen Zugriff auf die Benutzer der Klasse.