Freigeben über


Compilerfehler C2477

Aktualisiert: November 2007

Fehlermeldung

'Member': Statischer Datenmember darf nicht über eine abgeleitete Klasse initialisiert werden
'member' : static data member cannot be initialized via derived class

Ein statischer Datenmember einer Vorlagenklasse wurde falsch initialisiert. Dies ist eine wichtige Änderung gegenüber den Visual C++-Compilerversionen vor Visual Studio .NET 2003, die zwecks Konformität mit dem C++ ISO-Standard eingeführt wurde.

Weitere Informationen finden Sie unter Übersicht über die wichtigsten Änderungen bei der Kompilierzeit.

Im folgenden Beispiel wird C2477 generiert:

// C2477.cpp
// compile with: /Za /c
template <class T>
struct S {
   static int n;
};

struct X {};
struct A: S<X> {};

int A::n = 0;   // C2477

template<>
int S<X>::n = 0;