Compartir a través de


Advertencia del compilador (nivel 2) C4356

"member": no se puede inicializar el miembro de datos estático mediante una clase derivada

La inicialización de un miembro de datos estático tenía un formato incorrecto. El compilador aceptó la inicialización. Para evitar la advertencia, inicialice el miembro a través de la clase base.

Para suprimir esta advertencia, use la pragma warning.

El ejemplo siguiente genera la advertencia C4356:

// C4356.cpp
// compile with: /W2 /EHsc
#include <iostream>

template <class T>
class C {
   static int n;
};

class D : C<int> {};

int D::n = 0; // C4356
// try the following line instead
// int C<int>::n = 0;

class A {
public:
   static int n;
};

class B : public A {};

int B::n = 10;   // C4356
// try the following line instead
// int A::n = 99;

int main() {
   using namespace std;
   cout << B::n << endl;
}