Konstruktoren in C 11 erben
In C 11 ermöglicht die Konstruktorvererbung einer abgeleiteten Klasse, implizit Konstruktoren von ihrer Basisklasse zu erben. Dies wird durch das Schlüsselwort using erreicht, das angibt, dass die abgeleitete Klasse die Konstruktoren der Basisklasse verwenden soll.
Syntax:
struct B { B(int); // Normal constructor 1 B(string); // Normal constructor 2 }; struct D : B { using B::B; // Inherit constructors from B };
Auswirkungen :
Die abgeleitete Klasse D hat jetzt die geerbten Konstruktoren:
Anwendungen:
Konstruktorvererbung ist in den folgenden Szenarien nützlich:
Ausführliche Erklärung:
Die Standardbibliothek definiert die erbenden Konstruktoren wie folgt:
D::D(int x) : B(x) {} D::D(string s) : B(s) {}
Das bedeutet, dass, wenn eine Instanz der abgeleiteten Klasse D erstellt wird, sie den entsprechenden Konstruktor der Basisklasse B aufruft, um ihre Basismitglieder zu initialisieren.
Das obige ist der detaillierte Inhalt vonKonstruktorvererbung in C 11: Wie funktioniert es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!