Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
"składowa": nie można zainicjować składowej danych statycznych za pośrednictwem klasy pochodnej
Zainicjowanie statycznego elementu członkowskiego danych było źle sformułowane. Kompilator zaakceptował inicjowanie. Aby uniknąć ostrzeżenia, zainicjuj składową za pomocą klasy bazowej.
Użyj pragma ostrzeżenia, aby pominąć to ostrzeżenie.
Poniższy przykład generuje 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;
}