Was ist der Vererbungskonstruktor in C ++ -

Was ist der Vererbungskonstruktor in C ++ -
In c++, Nachlass ist ein wesentlicher Begriff in der objektorientierten Programmierung. Eine abgeleitete Klasse kann die Eigenschaften und Verhalten einer Basisklasse dank der Mächtigen erben Nachlass Fähigkeit in c++. Eine abgeleitete Klasse erbt sofort alle Mitglieder der Basisklasse, wenn sie gebildet wird. Es ist erforderlich, dass der abgeleitete Klassenkonstruktor auch die Mitglieder der Basisklassen initialisieren. In c++, Nachlass ist eine leistungsstarke Funktion, mit der Entwickler Code wiederverwenden, die Effizienz verbessern und Code in logische Hierarchien organisieren können.

Zusammen mit der Vererbung sind Konstruktoren auch in C von wesentlicher Bedeutung++. A Konstrukteur ist eine einzigartige Mitgliederfunktion, mit der Sie die Eigenschaften des Objekts initialisieren können. Ein Vererbungskonstruktor ist ein Konstruktor, mit dem sowohl die Basisklassen- als auch die abgeleiteten Klassenobjekte initialisiert werden, die die abgeleitete Klasse geerbt hat. Der Vererbungskonstruktor ist verantwortlich für die Initialisierung sowohl der ererbten Mitglieder der Basisklassen als auch die abgeleiteten Klassenmitglieder. Um dies zu erreichen, ruft der Konstruktor den Konstruktor der Basisklasse an und stellt sicher.

Indem Sie den Konstruktor der Basisklasse aufrufen und die erforderlichen Parameter übergeben, die Vererbungskonstruktor Initialisiert die Mitglieder der Basisklasse. Dies wird mit dem erreicht "Basisklasse (Argumente)" Initialisierungsliste im Konstruktor. Weitere Anweisungen für die abgeleitete Klasse finden Sie im Konstruktor -Körper.

Die Syntax für Erben Eine Klasse in C ++ lautet:

Klasse DEUNDCLASS: AccessSpecifier BaseClass
// Klassenmitglieder
;

Die neue Klasse wird in diesem Fall gebildet, "Abgeleitete Klasse", wird von "Basiclass". Der Zugang des Zugangs zu den ererbten Mitgliedern wird durch die “angegebenAccessSpecifier ”. C ++ verwendet drei Arten von Zugriffsspezifizierern, nämlich "Öffentlich", "privat", Und "geschützt". Das Wort "öffentlich" zeigt an, dass die abgeleitete Klasse Zugriff auf die öffentlichen Mitglieder der Basisklasse hat. Die abgeleitete Klasse hat keinen Zugriff auf die Mitglieder der Basisklasse, so die 'Privatgelände' Spezifizierer. Die abgeleitete Klasse hat Zugriff auf die geschützten Basisklassenmitglieder, die nach ihren Kinderklassen geerbt werden können 'geschützt' Spezifizierer.

Beispiel für die Vererbung in C++

Das folgende Beispiel zeigt die Implementierung von Nachlass in C ++:

#enthalten
Verwenden von Namespace STD;
Klassentier
öffentlich:
void eat ()
Cout << "I can eat!" << endl;

void sleep ()
Cout << "I can sleep!" << endl;

;
Klassenkatze: öffentliches Tier
öffentlich:
void meow ()
Cout << "I can meow!" << endl;

;
int main ()
Cat Cat1;
Cat1.essen();
Cat1.schlafen();
Cat1.Miau();
Rückkehr 0;

Der angegebene Code definiert zwei Klassen, "Tier" Und "Katze", Wo "Katze" wird abgeleitet von "Tier". Beide Klassen haben einige Mitgliederfunktionen, wie z "Essen schlafen", Und "Miau". Die Hauptfunktion erstellt ein Objekt der Klasse "Katze" und ruft die 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 miau.

Ausgang

Wenn eine Klasse abgeleitet ist. Der vererbt Die Zugänglichkeit der Mitglieder in der abgeleiteten Klasse wird durch den Zugriffsspezifizierer bestimmt. Die abgeleitete Klasse kann auch neue Merkmale für diejenigen ersetzen, die bereits existieren. Es kann neue Implementierungen für die Methoden der Basisklasse hinzufügen und neue Mitgliederfunktionen und Variablen hinzufügen.

Es ist entscheidend, 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 sie nicht verfügbar ist.

Abschluss

Das starke Merkmal von Nachlass In C ++ ermöglicht es Klassen, Code wiederzuverwenden, indem Merkmale und Aktionen anderer erben werden. Eine nützliche Funktion von C ++ 's Vererbungskonstruktor Ermöglicht abgeleitete Klassen die Eigenschaften, Methoden und Datenmitglieder einer Basisklasse. Mit der Hinzufügung einer Initialisierungsliste für Basisklassenkonstruktoren wird sie unter Verwendung derselben Syntax wie Standardkonstruktor definiert. C ++ - Programmierer können die Code -Duplikation minimieren und die Codestruktur verbessern, indem sie die verwenden Vererbungskonstruktor. Um komplexe Klassenhierarchien in objektorientierter Programmierung zu erstellen, ist es ein wichtiges Werkzeug.