Partilhar via


Compilador erro C2885

Mensagem de erro

'classe::identificador': não um válido declaração usando no escopo de classe não

Você usou um usando o declaração incorretamente.

Exemplo

Esse erro pode ser gerado sistema autônomo resultado do compilador conformidade trabalho foi realizado em Visual C++ 2005: não é mais válida, para ter um using declaração de um tipo aninhado; você deve qualificar explicitamente cada referência a fazer para tipo aninhado, coloque o tipo em um espaço para nome ou criar um typedef. Consulte Quebrar alterações no compilador de 2005 Visual C++ para obter mais informações.

O exemplo a seguir gera C2885.

// C2885.cpp
namespace MyNamespace {
   class X1 {};
}

struct MyStruct {
   struct X1 {
      int i;
   };
};

int main () {
   using MyStruct::X1;   // C2885

   // OK
   using MyNamespace::X1;
   X1 myX1;

   MyStruct::X1 X12;

   typedef MyStruct::X1 abc;
   abc X13;
   X13.i = 9;
}

Se você usar o using palavra-chave com um membro da classe, C++ requer que você definir esse membro dentro de outra classe (uma classe derivada).

O exemplo a seguir gera C2885.

// C2885_b.cpp
// compile with: /c
class A {
public:
   int i;
};

void z() {
   using A::i;   // C2885 not in a class
}

class B : public A {
public:
   using A::i;
};