Compartilhar via


Erro do Compilador C2597

referência ilegal para o 'identificador' do membro não estático

Causas possíveis::

  1. Um membro não estático está especificado em uma função de membro estático. Para acessar o membro não estático, você deve passar ou criar uma instância local da classe e usar um operador de acesso de membro (. ou ->).

  2. O identificador especificado não é membro de uma classe, estrutura ou união. Verifique a ortografia do identificador.

  3. Um operador de acesso de membro se refere a uma função não membro.

  4. A amostra a seguir gera C2597 e mostra como corrigi-lo:

// C2597.cpp
// compile with: /c
struct s1 {
   static void func();
   static void func2(s1&);
   int i;
};

void s1::func() {
   i = 1;    // C2597 - static function can't access non-static data member
}

// OK - fix by passing an instance of s1
void s1::func2(s1& a) {
   a.i = 1;
}