Wenn ich eine Basisklasse:Abgeleitete Klasse Konstruktoraufrufe
class Base{
...
};
und eine abgeleitete Klasse
class Derived : public Base{
...
}
ist diese abgeleitete Klasse des Standard-Konstruktor der Basisklasse immer anrufen? d.h. der Konstruktor, der keine Parameter annimmt? Wenn ich einen Konstruktor für die Basisklasse zum Beispiel definieren:
Base(int newValue);
aber ich habe nicht den Standard-Konstruktor (der parameterlosen Konstruktor) definieren:
Base();
(ich erkennen, dass dies nur eine Erklärung und nicht eine Definition) Ich bekomme einen Fehler, bis ich den Standardkonstruktor definiere, der keine Parameter nimmt. Liegt das daran, dass der Standardkonstruktor einer Basisklasse von einer abgeleiteten Klasse aufgerufen wird?
Sie können überprüfen, indem Sie den Standardkonstruktor in der Basisklasse etwas drucken, das auf dem Bildschirm einzigartig ist. Dies ist eine gute Möglichkeit, Dinge wie diese zu überprüfen, und Sie lernen Dinge zu lernen! –