Teilen über


Compilerwarnung (Ebene 2) C4356

'member' : Statisches Datenmemm kann nicht über abgeleitete Klasse initialisiert werden.

Bemerkungen

Die Initialisierung eines statischen Datenelements war krank. Der Compiler hat die Initialisierung akzeptiert. Um die Warnung zu vermeiden, initialisieren Sie das Element über die Basisklasse.

Verwenden Sie die Pragma-Warnung , um diese Warnung zu unterdrücken.

Example

Im folgenden Beispiel wird C4356 generiert:

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