Поделиться через


Ошибка компилятора C2477

Обновлен: Ноябрь 2007

Сообщение об ошибке

"член": статический член данных не может инициализироваться через производный класс.
'member': static data member cannot be initialized via derived class.

Неправильная инициализация статического члена данных класса шаблона. Критические изменения внесены в версии компилятора Visual C++, более ранних, чем Visual Studio .NET 2003, для соответствия стандартам ISO C++.

Дополнительные сведения см. в разделе Сводная информация о критических изменениях времени компиляции.

Следующий пример демонстрирует причины возникновения ошибки 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;