Member-Initialisierungslisten in Konstruktoren
In C ist ein Doppelpunkt gefolgt von einem Ausdruck nach einem Konstruktor Teil einer Member-Initialisierungsliste. Es dient zwei Hauptzwecken:
1. Aufrufen von Basisklassenkonstruktoren
In abgeleiteten Klassen kann die Elementinitialisierungsliste verwendet werden, um die Argumente für den Aufruf des Konstruktors der Basisklasse anzugeben. Zum Beispiel im folgenden Code:
class demo { public: demo(unsigned char le = 5, unsigned char default) : len(le) { // Body of the constructor } }; class newdemo : public demo { public: newdemo() : demo(0, 0) { // Body of derived class constructor } };
Die Syntax : demo(0, 0) im newdemo-Konstruktor ruft den Konstruktor der Demo-Basisklasse mit den Argumenten 0 und 0 auf.
2. Datenelemente initialisieren
Vor der Ausführung des Konstruktorkörpers kann die Elementinitialisierungsliste zum Initialisieren von Datenelementen der Klasse verwendet werden. Dies ist besonders nützlich für const-Mitglieder, die nicht im Konstruktorkörper zugewiesen werden können. Zum Beispiel:
class Demo { public: Demo(int& val) : m_val(val) { // Body of constructor } private: const int& m_val; };
In diesem Beispiel initialisiert die Syntax: m_val(val) das const-Referenzdatenelement m_val mit dem Wert des Konstruktorarguments val.
Das obige ist der detaillierte Inhalt vonWie funktionieren Elementinitialisierungslisten in C-Konstruktoren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!