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

Was Ist Der Unterschied Zwischen Privaten Und Geschutzten Membern Von C Klassen



C++ ist eine objektorientierte Programmiersprache (OOP), die einen Mechanismus bereitstellt, um Daten und Funktionen in einer einzigen Entität zu kapseln, die als Klasse bezeichnet wird. Eines der wesentlichen Merkmale der Klasse ist die Möglichkeit, die Zugriffsebene für ihre Mitglieder festzulegen. Bei der objektorientierten Programmierung Zugriffsbezeichner werden verwendet, um die Sichtbarkeit und Zugänglichkeit der Felder und Methoden einer Klasse zu steuern. Geschützt , öffentlich , Und Privatgelände Zugriffsebenen sind die drei Grundtypen von Zugriffsebenen in C++.

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

Privater Zugriffsspezifizierer

Private Mitglieder werden mit dem Schlüsselwort „ Privatgelände ‘. Der privater Zugriffsbezeichner beschränkt den Zugriff auf Klassenmitglieder nur auf die Klasse selbst. Code außerhalb der Klasse kann nicht auf ein privates Element zugreifen oder es ändern. Das bedeutet, dass nur die in der Klasse deklarierten Methoden auf die zugreifen und auf ihr arbeiten können private Mitglieder , nicht einmal abgeleitete Klassen können darauf zugreifen private Mitglieder . Eine übliche Verwendung von private Mitglieder ist es, den korrekten Betrieb einer Klasse sicherzustellen. Private Mitglieder werden verwendet, um die Klassendaten zu kapseln und den Benutzern der Klasse eine Abstraktionsebene bereitzustellen.







#include
verwenden Namensraum Standard ;

Klasse Spieler {

Privatgelände :
Zeichenfolgenname ;
int Alter ;

öffentlich :
Leere getPlayer ( )
{
cout << 'Name eingeben: ' ;
Essen >> Name ;
cout << 'Geben Sie das Alter ein: ' ;
Essen >> Alter ;
}
Leere showPlayer ( )
{
cout << 'Name: ' << Name << Ende ;
cout << 'Alter: ' << Alter << Ende ;
}
} ;

int hauptsächlich ( )
{
Spieler pl ;
pl. getPlayer ( ) ;
pl. showPlayer ( ) ;

zurückkehren 0 ;
}

Im obigen Code verwenden wir die öffentlichen Member-Methoden getPlayer() Und showPlayer() auf die beiden zugreifen Privatgelände Mitglieder Name Und Alter . Der getPlayer() Funktion erhält die Eingaben von den Benutzern und zeigt sie auf dem Bildschirm über an showPlayer() Funktion.



Ausgang







Geschützter Zugriffsspezifizierer

Geschützte Mitglieder einer Klasse kann sowohl von den abgeleiteten Klassen als auch von den Elementfunktionen der Klasse selbst zugegriffen werden. Geschützte Mitglieder werden verwendet, um eine Zugriffsebene auf die abgeleiteten Klassen bereitzustellen, ohne die Implementierungsdetails der Außenwelt preiszugeben. Geschützte Mitglieder werden mit dem Schlüsselwort „ geschützt ' und das Doppelpunkt (:) Charakter. Geschützte Mitglieder ermöglichen, dass eine Klasse erweitert und modifiziert wird, ohne ihre Integrität zu gefährden. Eine abgeleitete Klasse kann verwenden geschützte Mitglieder um das Verhalten einer Basisklasse zu verfeinern oder anzupassen.

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



#include
mit Namensraum std;

Klasse Spieler {
Privatgelände:
Zeichenfolgenname;
int-Alter;

geschützt:
int-Ziele;

öffentlich:
void getPlayer ( )
{
cout <> Name;
cout <> Alter;
}
void showPlayer ( )
{
cout << 'Name: ' << Name << endl;
cout << 'Alter: ' << Alter << endl;
}
} ;

Klasse player1 : öffentlicher Spieler {

Privatgelände:
String-Land;

öffentlich:
void set_goals ( int g )
{
Ziele = g;
}
void getPlayer1 ( )
{
getPlayer ( ) ;
cout <> Land;
}
void showPlayer1 ( )
{
cout << 'Ziele: ' << Ziele << endl;
showPlayer ( ) ;
cout << 'Land: ' << Land << endl;
}
} ;

int Haupt ( )
{
Spieler1 pl;
pl.set_goals ( 101 ) ;
pl.getPlayer1 ( ) ;
pl.showPlayer1 ( ) ;

zurückkehren 0 ;
}

Der Spieler Klasse besteht aus zwei private Mitglieder , Name Und Alter , eins geschützt Mitglied, Ziele , Und Privatgelände Mitglieder werden innerhalb der verwendet öffentlich Mitgliedsfunktionen, getPlayer() Und showPlayer() . Es gibt zwei Klassen, Spieler Und Spieler1 , die beide Basisklassen sind. Eins Privatgelände Mitglied, Land , und drei öffentlich Mitgliedsmethoden 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, während zusätzlich die Eingabe für das Land abgerufen wird. Ähnlich wie dies, showPlayer1() ruft die showPlayer() Mitgliedsfunktion und druckt die Ziele Und Land Werte.

Ausgang

Unterschied zwischen privaten und geschützten Membern 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

Wenn Sie die Verwendung von Zugriffsspezifizierern in Betracht ziehen, ist es wichtig, sorgfältig über die Umfang Und Funktionalität des Programms. A privater Zugriffsbezeichner bietet höchste Sicherheit und verhindert unbeabsichtigten Zugriff auf Variablen und Methoden. Andererseits ist A geschützter Zugriffsbezeichner bietet einen umfassenderen Bereich an Zugänglichkeit und Flexibilität, was wesentlich ist, wenn Sie planen, abgeleitete Klassen von einer Basisklasse zu erben.

2: Zugriffsebene

Der Hauptunterschied zw Privatgelände Und geschützte Mitglieder ist die Zugriffsebene, die sie bieten. Geschützt Member können sowohl von den abgeleiteten Klassen als auch von den Memberfunktionen der Klasse aufgerufen werden, aber Privatgelände Mitglieder können nur von den Mitgliederfunktionen der Klasse abgerufen werden.

3: Kapselung der Klasse

Ein weiterer entscheidender Unterschied zw Privatgelände Und geschützt Mitglieder ist ihre Rolle bei der Aufrechterhaltung der Kapselung der Klasse. Um die Daten zu isolieren und den Benutzern der Klasse eine gewisse Abstraktionsebene zu bieten, Privatgelände Mitglieder sind berufstätig. Geschützt Mitglieder werden verwendet, um die Vererbungsstruktur zu verwalten und den Zugriff auf Basisklassenmitglieder durch abgeleitete Klassen bereitzustellen.

Abschließende Gedanken

Privatgelände Und geschützte Mitglieder sind die beiden wesentlichen Zugriffsebenen in der C++-Klasse. Der Privatgelände Der Zugriffsbezeichner macht Klassenmitglieder für alle externen Benutzer unzugänglich und wird verwendet, um Informationen zu speichern Privatgelände innerhalb der Klasse. Im Gegensatz dazu ist A geschützt Der Zugriffsspezifizierer ermöglicht den Zugriff auf Klassenmitglieder nur durch abgeleitete Klassen, wird verwendet, um Basisklassenfunktionen bereitzustellen, und ermöglicht Änderungen, ohne das Verhalten der Basisklasse zu ändern. Die Zugriffsebene der Klassenmitglieder spielt eine entscheidende Rolle bei der Aufrechterhaltung der Kapselung der Klasse und der Bereitstellung einer Zugriffsebene für die Benutzer der Klasse.