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;
}
};