Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Messaggio di errore
'membro': i membri dati static non possono essere inizializzati tramite classi derivate
'member' : static data member cannot be initialized via derived class
L'inizializzazione di un membro dati static è stata specificata in modo non valido. Il compilatore ha accettato l'inizializzazione.
Si tratta di una nuova modifica del compilatore Visual C++ .NET 2003. Per ulteriori informazioni, vedere Riepilogo delle ultime modifiche in fase di compilazione.
Affinché il codice funzioni allo stesso modo in tutte le versioni di Visual C++, inizializzare il membro tramite la classe base.
Per non visualizzare questo avviso, utilizzare il pragma warning.
Nell'esempio seguente viene generato l'errore 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;
}