Konstruktorverkettung in C
Konstruktorverkettung, bei der ein Konstruktor einen anderen Konstruktor aus seinem Körper heraus aufruft, ist in C# eine gängige Praxis zur Initialisierung Objekte mit unterschiedlichen Parametern. C hat eine ähnliche Funktion namens delegierende Konstruktoren.
C 11 und höher
In C 11 und späteren Versionen können delegierende Konstruktoren verwendet werden, um eine Konstruktorverkettung zu erreichen. Die Syntax lautet:
class Foo { public: Foo(char x, int y); Foo(int y) : Foo('a', y) {} };
Der Foo(int y)-Konstruktor ruft den Foo(char x, int y)-Konstruktor mit dem Standardwert für x auf.
C 03 und Frühere Versionen
C 03 unterstützt keine delegierenden Konstruktoren. Es gibt jedoch zwei Simulationsmethoden:
class Foo { public: Foo(char x, int y = 0); // combines constructors (char) and (char, int) // ... };
class Foo { public: Foo(char x); Foo(char x, int y); // ... private: void init(char x, int y); }; Foo::Foo(char x) { init(x, x + 7); // ... } Foo::Foo(char x, int y) { init(x, y); // ... } void Foo::init(char x, int y) { // ... }
Das obige ist der detaillierte Inhalt vonWie funktioniert die Konstruktorverkettung in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!