Neben der Vererbung sind auch Konstruktoren in C++ unerlässlich. A Konstrukteur ist eine eindeutige Member-Funktion, mit der Sie die Eigenschaften des Objekts initialisieren können. Ein Vererbungskonstruktor ist ein Konstruktor, der verwendet wird, um sowohl die Basisklasse als auch abgeleitete Klassenobjekte zu initialisieren, die die abgeleitete Klasse geerbt hat. Der Vererbungskonstruktor ist für die Initialisierung sowohl der geerbten Basisklassenmitglieder als auch der abgeleiteten Klassenmitglieder verantwortlich. Um dies zu erreichen, ruft der Konstruktor den Konstruktor der Basisklasse auf und stellt sicher, dass alle Member der abgeleiteten Klasse ordnungsgemäß initialisiert werden, einschließlich der von der Basisklasse geerbten.
Durch Aufrufen des Konstruktors der Basisklasse und Übergeben der erforderlichen Parameter, der Vererbungskonstruktor initialisiert die Mitglieder der Basisklasse. Dies geschieht mit der 'Basisklasse (Argumente)' Initialisierungsliste im Konstruktor. Weitere Anweisungen speziell für die abgeleitete Klasse werden im Konstruktorkörper bereitgestellt.
Die Syntax für erben Eine Klasse in C++ ist:
Klasse Abgeleitete Klasse : accessSpecifier BaseClass {
// Klassenmitglieder
} ;
Die neue Klasse, die in diesem Fall gebildet wird, 'Abgeleitete Klasse', wird von erben „Basisklasse“. Die Zugriffsebene auf die geerbten Mitglieder wird durch das „ accessSpecifier“. C++ verwendet drei Arten von Zugriffsbezeichnern, nämlich „öffentlich“, „privat“, Und 'geschützt' . Das Wort 'öffentlich' gibt an, dass die abgeleitete Klasse Zugriff auf die öffentlichen Member der Basisklasse hat. Die abgeleitete Klasse hat gemäß der keinen Zugriff auf die Mitglieder der Basisklasse 'Privatgelände' Bezeichner. Die abgeleitete Klasse hat Zugriff auf die geschützten Mitglieder der Basisklasse, die gemäß der von ihren untergeordneten Klassen geerbt werden können 'geschützt' Bezeichner.
Beispiel für Vererbung in C++
Das folgende Beispiel zeigt die Implementierung von Nachlass in C++:
#include
verwenden Namensraum Standard ;
Klasse Tier {
öffentlich :
Leere essen ( ) {
cout << 'Ich kann essen!' << Ende ;
}
Leere schlafen ( ) {
cout << 'Ich kann schlafen!' << Ende ;
}
} ;
Klasse Katze : öffentlich Tier {
öffentlich :
Leere Miau ( ) {
cout << 'Ich kann miauen!' << Ende ;
}
} ;
int hauptsächlich ( ) {
Katze Katze1 ;
Kat1. essen ( ) ;
Kat1. schlafen ( ) ;
Kat1. Miau ( ) ;
zurückkehren 0 ;
}
Der angegebene Code definiert zwei Klassen, 'Tier' Und 'Katze' , Wo 'Katze' ist abgeleitet von 'Tier' . Beide Klassen haben einige Mitgliedsfunktionen, wie z 'Essen schlafen' , Und 'Miau' . Die Hauptfunktion erstellt ein Objekt der Klasse 'Katze' und ruft die an vererbt Funktionen aus der Klasse 'Tier' sowie die spezifische Funktion der Klasse 'Katze' , welches ist 'Miau' . Das Programm gibt den Text an die Konsole aus und zeigt an, dass die Katze essen, schlafen und miauen kann.
Ausgang
Bei der Ableitung einer Klasse werden alle Elementvariablen und Elementfunktionen der Basisklasse an die abgeleitete Klasse übertragen. Der vererbt Die Zugänglichkeit der Member in der abgeleiteten Klasse wird durch den Zugriffsbezeichner bestimmt. Die abgeleitete Klasse kann auch bereits vorhandene Merkmale durch neue Merkmale ersetzen. Es kann neue Implementierungen für die Methoden der Basisklasse und neue Mitgliedsfunktionen und -variablen hinzufügen.
Es ist wichtig, sich daran zu erinnern, dass die Vererbungskonstruktor muss verwendet werden, um den Konstruktor der Basisklasse explizit mit den erforderlichen Parametern aufzurufen, wenn die Basisklasse einen Standardkonstruktor hat oder wenn dieser nicht verfügbar ist.
Abschluss
Die starke Eigenschaft von Nachlass in C++ ermöglicht es Klassen, Code wiederzuverwenden, indem Eigenschaften und Aktionen von anderen geerbt werden. Ein nützliches Feature von C++ Vererbungskonstruktor ermöglicht es abgeleiteten Klassen, die Eigenschaften, Methoden und Datenmember einer Basisklasse zu erben. Durch das Hinzufügen einer Initialisierungsliste für Basisklassenkonstruktoren wird sie unter Verwendung derselben Syntax wie ein Standardkonstruktor definiert. C++-Programmierer können die Codeduplizierung minimieren und die Codestruktur verbessern, indem sie die verwenden Vererbungskonstruktor . Zum Erstellen komplexer Klassenhierarchien in der objektorientierten Programmierung ist es ein wichtiges Werkzeug.