Compartir a través de


Error del compilador C2597

referencia no válida al miembro no estático "identifier"

Causas posibles:

  1. Se especifica un miembro no estático en una función de miembro estático. Para tener acceso al miembro no estático, debe pasar o crear una instancia local de la clase y usar un operador de acceso a miembros (. o ->).

  2. El identificador especificado no es miembro de una clase, estructura o unión. Revisar la ortografía del identificador.

  3. Un operador de acceso a miembros hace referencia a una función no miembro.

  4. El ejemplo siguiente genera el error C2597 y muestra cómo corregirlo:

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