Aufrufen des Basisklassenkonstruktors in C
Im Gegensatz zum Java-Schlüsselwort super(), das zum Aufrufen des Basisklassenkonstruktors verwendet wird, bietet C einen anderen Mechanismus . Sehen wir uns an, wie man den Basisklassenkonstruktor mit Argumenten in C aufruft.
Problem:
Stellen Sie sich eine C-Klasse mit einem Standardkonstruktor vor, der Argumente akzeptiert, wie zum Beispiel:
class BaseClass { public: BaseClass(char *name); .... };
Beim Erben von dieser Klasse wird möglicherweise eine Warnung angezeigt, dass kein geeigneter Standardwert vorhanden ist Konstruktor.
Lösung:
C ermöglicht den Aufruf des Basisklassenkonstruktors innerhalb der Initialisierungsliste des Konstruktors der Unterklasse. Hier ist ein Beispiel:
class Foo : public BaseClass { public: Foo() : BaseClass("asdf") {} };
Wenn in diesem Beispiel der Foo-Konstruktor aufgerufen wird, initialisiert er die Basisklasse BaseClass mithilfe des Konstruktors, der ein Zeichenzeigerargument akzeptiert und die Zeichenfolge „asdf“ als Argument übergibt.
Zusätzlicher Hinweis:
Basisklassenkonstruktoren, die Argumente erfordern, müssen in der Initialisierungsliste aufgerufen werden, bevor Mitglieder der Unterklasse initialisiert werden.
Das obige ist der detaillierte Inhalt vonWie rufe ich einen Basisklassenkonstruktor mit Argumenten in C auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!