Heim > Backend-Entwicklung > C++ > Initialisiert C implizit integrierte Typen in Standardkonstruktoren?

Initialisiert C implizit integrierte Typen in Standardkonstruktoren?

Linda Hamilton
Freigeben: 2024-12-06 09:55:14
Original
535 Leute haben es durchsucht

Does C   Implicitly Initialize Built-in Types in Default Constructors?

Initialisiert der implizite Standardkonstruktor integrierte Typen?

Während vom Compiler generierte Standardkonstruktoren für die Initialisierung von Klassenmitgliedern verantwortlich sind, gilt diese Regel gilt nicht für integrierte Typen. Implizite Standardkonstruktoren lassen integrierte Typmitglieder nicht initialisiert.

Es gibt jedoch alternative Mechanismen zum Initialisieren von Klasseninstanzen.

Wertinitialisierung

Die Syntax C() scheint den Standardkonstruktor aufzurufen, aber in Wirklichkeit führt es eine Wertinitialisierung durch. was:

  • Löst den vom Benutzer deklarierten Standardkonstruktor nur aus, wenn vorhanden.
  • Bei Klassen ohne vom Benutzer deklarierte Konstruktoren wird der Standardkonstruktor übersprungen.
  • Direkter Wert -Initialisierung integrierter Typen führt zu Null-Initialisierung.

Beispiel:

class C { public: int x; };
C c; // Compiler-generated default constructor used, x retains garbage
Nach dem Login kopieren

Explizite Initialisierung

Der explizite Initialisierer () explizit Löst die Wertinitialisierung sowohl für integrierte als auch vom Benutzer deklarierte Typen aus Konstruktoren.

C c = C(); // Value initialization used, x is zero-initialized
C *pc = new C(); // Value initialization used, pc->x is zero-initialized
Nach dem Login kopieren

Aggregatinitialisierung

Aggregatinitialisierung initialisiert auch Klasseninstanzen ohne Einbeziehung von Konstruktoren.

C c = {}; // x is zero-initialized
C d{}; // C++11 aggregate initialization, x is zero-initialized
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonInitialisiert C implizit integrierte Typen in Standardkonstruktoren?. 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