Heim >Backend-Entwicklung >C++ >Initialisierungsliste vs. Konstruktorkörper: Welche C-Konstruktor-Syntax sollten Sie verwenden?
Initialisierungssyntax in Konstruktoren: Initialisiererliste vs. Konstruktorkörper
In C haben Sie zwei Möglichkeiten, Klassenmitgliedsvariablen in einem Konstruktor zu initialisieren :
Initialisator Liste:
public: Thing(int _foo, int _bar): member1(_foo), member2(_bar) {}
Konstrukteurskörper:
public: Thing(int _foo, int _bar) { member1 = _foo; member2 = _bar; }
Vergleich
Obwohl beide Syntaxen ähnlich erscheinen, können sie für Nicht-POD erhebliche Unterschiede aufweisen (Einfache alte Daten) Mitgliedstypen.
In der Syntax der Initialisierungsliste werden Mitgliedsvariablen initialisiert, bevor der Konstruktorkörper ausgeführt wird. Dies bedeutet, dass Nicht-POD-Mitglieder mit Nicht-Standardkonstruktoren garantiert ordnungsgemäß initialisiert werden.
In der Syntax des Konstruktorkörpers werden Mitgliedsvariablen nach dem Konstruktorkörper initialisiert. Dies kann zu doppelten Initialisierungs- und Kompilierungsfehlern führen, wenn Nicht-POD-Mitglieder keine Standardkonstruktoren haben.
Standardparameterbehandlung
Standardparameter werden zwischen den nicht unterschiedlich behandelt zwei Syntaxen. Sie können Standardparameter sowohl in der Initialisierungsliste als auch im Konstruktorkörper verwenden.
Fazit
Für Nicht-POD-Mitgliedstypen wird empfohlen, die Syntax der Initialisierungsliste zu verwenden weil es eine ordnungsgemäße Initialisierung gewährleistet und potenzielle Fehler verhindert.
Das obige ist der detaillierte Inhalt vonInitialisierungsliste vs. Konstruktorkörper: Welche C-Konstruktor-Syntax sollten Sie verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!