Heim > Artikel > Backend-Entwicklung > Wie verwende ich Basisklassenkonstruktoren und Zuweisungsoperatoren in abgeleiteten Klassen?
So verwenden Sie die Konstruktoren und Zuweisungsoperatoren der Basisklasse in C
Ein häufiges Szenario tritt auf, wenn von einer Basisklasse geerbt wird und bestimmte überschrieben werden sollen Funktionen unter Beibehaltung der Konstruktoren und Zuweisungsoperatoren der Basisklasse. In diesem Fall kann es unnötig sein, diese Konstrukte neu zu schreiben, da C praktikable Alternativen bietet.
Expliziter Aufruf von Konstruktoren und Zuweisungsoperatoren:
In diesem Ansatz die abgeleitete Klasse Ruft explizit die Konstruktoren und Zuweisungsoperatoren der Basisklasse innerhalb ihrer eigenen Konstruktor- und Zuweisungsoperatordefinitionen auf. Betrachten Sie beispielsweise Folgendes:
<code class="cpp">class Base { public: Base(const Base& b) { /*...*/ } Base& operator=(const Base& b) { /*...*/ } }; class Derived : public Base { public: Derived(const Derived& d) : Base(d), // Base constructor additional_(d.additional_) // Additional member initialization { } Derived& operator=(const Derived& d) { Base::operator=(d); // Base assignment operator additional_ = d.additional_; return *this; } };</code>
Impliziter Funktionsversand:
In Fällen, in denen die abgeleitete Klasse den Zuweisungsoperator oder Kopierkonstruktor der Basisklasse nicht explizit überschreibt , sendet der Compiler automatisch an die entsprechenden Basisklassenmethoden. Diese Funktionalität wird unten demonstriert:
<code class="cpp">class Base { int value_; }; class Derived : public Base { public: Derived& operator=(const Derived& d) { Base::operator=(d); // Implicit invocation of base operator= // Perform derived-specific assignment return *this; } }; </code>
Das obige ist der detaillierte Inhalt vonWie verwende ich Basisklassenkonstruktoren und Zuweisungsoperatoren in abgeleiteten Klassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!