Heim > Backend-Entwicklung > C++ > Wie funktioniert die Konstruktorverkettung in C?

Wie funktioniert die Konstruktorverkettung in C?

Susan Sarandon
Freigeben: 2025-01-01 14:41:09
Original
212 Leute haben es durchsucht

How Does Constructor Chaining Work in C  ?

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) {}
};
Nach dem Login kopieren

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:

  • Standardparameter: Kombinieren mehrerer Konstruktoren mit Standardparameterwerten.
class Foo {
public:
  Foo(char x, int y = 0);  // combines constructors (char) and (char, int)
  // ...
};
Nach dem Login kopieren
  • Initialisierungsmethode: Gemeinsamer Code zwischen Konstruktoren durch eine private Initialisierung Methode.
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)
{
  // ...
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage