Heim > Backend-Entwicklung > C++ > Konstruktorvererbung in C 11: Wie funktioniert es?

Konstruktorvererbung in C 11: Wie funktioniert es?

Mary-Kate Olsen
Freigeben: 2024-11-07 01:49:03
Original
580 Leute haben es durchsucht

Constructor Inheritance in C  11: How Does It Work?

Konstruktoren in C 11 erben

In C 11 ermöglicht die Konstruktorvererbung einer abgeleiteten Klasse, implizit Konstruktoren von ihrer Basisklasse zu erben. Dies wird durch das Schlüsselwort using erreicht, das angibt, dass die abgeleitete Klasse die Konstruktoren der Basisklasse verwenden soll.

Syntax:

struct B {
  B(int); // Normal constructor 1
  B(string); // Normal constructor 2
};

struct D : B {
  using B::B; // Inherit constructors from B
};
Nach dem Login kopieren

Auswirkungen :

  • Die abgeleitete Klasse D hat jetzt die geerbten Konstruktoren:

    • D::D(int);
    • D ::D(string);
  • Mitgliedsvariablen von D werden standardmäßig von diesen geerbten Konstruktoren initialisiert.

Anwendungen:

Konstruktorvererbung ist in den folgenden Szenarien nützlich:

  • Einsparung von Tippaufwand:Dadurch entfällt die Notwendigkeit, Konstruktoren in der abgeleiteten Klasse manuell zu definieren.
  • Sicherstellen der Basisklasseninitialisierung: Es garantiert, dass die Basisklasse ordnungsgemäß initialisiert wird.

Ausführliche Erklärung:

Die Standardbibliothek definiert die erbenden Konstruktoren wie folgt:

D::D(int x) : B(x) {}
D::D(string s) : B(s) {}
Nach dem Login kopieren

Das bedeutet, dass, wenn eine Instanz der abgeleiteten Klasse D erstellt wird, sie den entsprechenden Konstruktor der Basisklasse B aufruft, um ihre Basismitglieder zu initialisieren.

Das obige ist der detaillierte Inhalt vonKonstruktorvererbung in C 11: Wie funktioniert es?. 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