Heim >Backend-Entwicklung >C++ >Wie funktioniert die Doppelpunkt-Syntax (:) in C-Konstruktoren für die Elementinitialisierung und Basisklassenaufrufe?
Die Doppelpunktsyntax in Konstruktoren verstehen
In C sind Konstruktoren Funktionen, die Objekte bei der Erstellung initialisieren. Während Konstruktornamen normalerweise mit dem Klassennamen übereinstimmen, können sie eine eindeutige Initialisierungssyntax haben. Ein bemerkenswerter Aspekt der Konstruktor-Syntax ist die Verwendung eines Doppelpunkts (:), gefolgt von einer Argumentliste.
Diese Syntax, bekannt als Member-Initialisierungsliste, dient zwei Hauptzwecken:
Betrachten Sie beispielsweise den folgenden Code:
class demo { private: unsigned char len, *dat; public: demo(unsigned char le = 5, unsigned char default) : len(le) { dat = new char[len]; for (int i = 0; i <= le; i++) dat[i] = default; } void ~demo(void) { delete [] *dat; } };
In diesem Beispiel ist der Der Konstruktor hat zwei Parameter, le und default. Die Member-Initialisierungsliste: len(le) weist den Wert von le dem len-Datenelement zu.
Zusätzlich gilt in der abgeleiteten Klasse newdemo:
class newdemo : public demo { private: int *dat1; public: newdemo(void) : demo(0, 0) { *dat1 = 0; return 0; } };
Die Member-Initialisierungsliste: demo( 0, 0) ruft den Basisklassenkonstruktor demo mit den Argumenten 0 und 0 auf und initialisiert die Len- und Standarddatenelemente der Basis Klasse.
Elementinitialisiererlisten sind eine bequeme und effiziente Möglichkeit, Datenelemente zu initialisieren und Basisklassenkonstruktoren aufzurufen, wodurch die Sicherheit und Klarheit Ihres Codes erhöht wird.
Das obige ist der detaillierte Inhalt vonWie funktioniert die Doppelpunkt-Syntax (:) in C-Konstruktoren für die Elementinitialisierung und Basisklassenaufrufe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!