Error del compilador C2597
referencia no válida al miembro no estático "identifier"
Causas posibles:
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->
).El identificador especificado no es miembro de una clase, estructura o unión. Revisar la ortografía del identificador.
Un operador de acceso a miembros hace referencia a una función no miembro.
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;
}