Exportar (0) Imprimir
Expandir Tudo
Expandir Minimizar
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

C4356 de aviso (Nível 2) do compilador

Mensagem de erro

'membro' : Estático dados membro não pode ser inicializado via classe derivada

A inicialização de um membro de dados estáticos ill foi formada.O compilador aceita a inicialização.

This is a Breaking Alterar in the compilador Visual C++.NET 2003.Consulte Resumo de compilar-tempo Breaking alterações para obter mais informações.

For Código that the same Works in all Versions of Visual C++, inicializar the membro through the classe base.

Use o pragma aviso para eliminar esse aviso.

O exemplo a seguir gera 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;
}

Contribuições da comunidade

ADICIONAR
A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
Mostrar:
© 2015 Microsoft