Compartilhar via


Erro do compilador C2355

'this': é possível referenciar apenas dentro de funções membro não estáticas ou inicializadores de membros de dados não estáticos

O ponteiro this é válido somente em funções membro não estáticas ou em inicializadores de membros de dados não estáticos. Esse erro pode ocorrer quando o escopo de classe de uma definição de função de membro fora da declaração de classe não for devidamente qualificado. O erro também pode ocorrer quando o ponteiro this for usado em uma função que não está declarada na classe.

Para corrigir esse problema, verifique se a definição da função membro corresponde a uma declaração de função membro na classe, e se ela não é declarada estática. Para inicializadores de membros de dados, verifique se o membro de dados não está estático.

O seguinte exemplo gera o erro C2355 e mostra como corrigi-lo:

// C2355.cpp
// compile with: /c
class MyClass {};
MyClass *p = this;   // C2355

// OK
class MyClass2 {
public:
   void Test() {
      MyClass2 *p = this;
   }
};