Freigeben über


Initialisierung mithilfe spezieller Memberfunktionen

Dieser Abschnitt beschreibt die Initialisierung mithilfe spezieller Memberfunktionen. Er führt die folgenden Erläuterungen zur Initialisierung weiter aus:

  • Initialisierung von Aggregaten – Beschreibt, wie Nichtklassentypen-Arrays und Objekte einfachen Klassentyps initialisiert werden. Diese einfachen Klassentypen können keine privaten oder geschützten Member enthalten, und sie können keine Basisklassen aufweisen.

  • Konstruktoren – Beschreibt, wie Sie Klassentypobjekte mithilfe von speziellen Konstruktorfunktionen initialisieren.

Mit der Standardinitialisierungsmethode wird eine Bit-für-Bit-Kopie vom Initialisierer in das zu initialisierende Objekt durchgeführt. Diese Technik gilt nur für:

  • Objekte von integrierten Typen. Beispiel:

    int i = 100;
    
  • Zeiger. Beispiel:

    int i;
    int *pi = &i;
    
  • Verweise. Beispiel:

    String sFileName( "FILE.DAT" );
    String &rs = sFileName;
    
  • Objekte des Klassentyps, in dem die Klasse über keine privaten oder geschützten Member, keine virtuellen Funktionen und keine Basisklassen verfügt. Beispiel:

    // spec1_special_member_functions.cpp
    // compile with: /LD
    struct Point
    {
        int x, y;
    };
    
    Point pt = { 10, 20 };   // Static storage class only
    

Klassen können eine verfeinerte Initialisierung angeben, indem sie Konstruktorfunktionen definieren. (Weitere Informationen zum Deklarieren solcher Funktionen finden Sie unter Konstruktoren). Wenn ein Objekt einen Klassentyp besitzt, der einen Konstruktor hat, muss das Objekt initialisiert werden, oder es muss ein Standardkonstruktor vorhanden sein. Objekte, die nicht speziell initialisiert werden, rufen den Standardkonstruktor der Klasse auf.

Siehe auch

Referenz

Spezielle Memberfunktionen (C++)