Compilerfehler C2536

Aktualisiert: November 2007

Fehlermeldung

'class::identifier': Angabe eines expliziten Initialisierers für Arrays nicht möglich
'class::identifier' : cannot specify explicit initializer for arrays

Ein Member einer Klasse, Struktur oder Union konnte nicht initialisiert werden. Mögliche Ursachen:

  1. Es ist kein Konstruktor zur Initialisierung eines oder mehrerer Member eines Arrays verfügbar. Enthält das Array mehr Elemente als Initialisierer, dann muss ein Standardkonstruktor definiert werden.

  2. Ein nicht statisches Array wurde mit dem const-Spezifizierer deklariert. Die Initialisierung eines solchen Arrays kann nicht explizit erfolgen.

Im folgenden Beispiel wird C2536 generiert:

// C2536.cpp
// compile with: /c
class C {
   int i;
   int j;
   int k;
};

class D {
   C aC[5];
   D() : aC(1,2,3,4,5) {}   // C2536
   // try the following line instead
   // D() {}
};