Compartir a través de


Error del compilador C2477

Actualización: noviembre 2007

Mensaje de error

'miembro': no se puede inicializar el miembro de datos estático mediante una clase derivada
'member' : static data member cannot be initialized via derived class

Se ha inicializado incorrectamente un miembro de datos estático de una clase de plantilla. Esto representa un cambio importante respecto a las versiones del compilador de Visual C++ anteriores a Visual Studio .NET 2003, para lograr la compatibilidad con el estándar ISO C++.

Vea Resumen de cambios importantes en tiempo de compilación para obtener más información.

El ejemplo siguiente genera el error C2477:

// 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;