Freigeben über


Initialisieren von Arrays

Wenn eine Klasse einen Konstruktor verfügt, werden Arrays dieser Klasse von einem Konstruktor initialisiert.Wenn weniger Elemente in der Initialisiererliste als Elemente im Array vorhanden ist, wird der Standardkonstruktor für die verbleibenden Elemente verwendet.Wenn kein Standardkonstruktor für die Klasse definiert wird, muss die Initialisiererliste abgeschlossen sein, d. h. es muss einen Initialisierer für jedes Element im Array vorhanden sein.

Betrachten Sie die Point-Klasse mit zwei Konstruktoren definiert:

// initializing_arrays1.cpp
class Point
{
public:
   Point()   // Default constructor.
   {
   }
   Point( int, int )   // Construct from two ints
   {
   }
};

// An array of Point objects can be declared as follows:
Point aPoint[3] = {
   Point( 3, 3 )     // Use int, int constructor.
};

int main()
{
}

Das erste Element von aPoint wird mithilfe des Konstruktors Point( int, int )erstellt. Die verbleibenden zwei Elemente werden mit dem Standardkonstruktor erstellt wird.

Statische Member von Arrays (ob const oder nicht) können in ihren Definitionen initialisiert werden (außerhalb der Klassendeklaration).Beispiele:

// initializing_arrays2.cpp
class WindowColors
{
public:
    static const char *rgszWindowPartList[7];
};

const char *WindowColors::rgszWindowPartList[7] = {
    "Active Title Bar", "Inactive Title Bar", "Title Bar Text",
    "Menu Bar", "Menu Bar Text", "Window Background", "Frame"   };
int main()
{
}

Siehe auch

Referenz

Initialisierung mit einer besonderen Memberfunktionen