Bagikan melalui


Compiler Warning (level 2) C4356

'member' : anggota data statis tidak dapat diinisialisasi melalui kelas turunan

Inisialisasi anggota data statis terbentuk. Pengkompilasi menerima inisialisasi. Untuk menghindari peringatan, inisialisasi anggota melalui kelas dasar.

Gunakan pragma peringatan untuk menekan peringatan ini.

Sampel berikut menghasilkan 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;
}