Sdílet prostřednictvím


Chyba kompilátoru C2597

neplatný odkaz na nestatický člen 'identifikátor'

Poznámky

Možné příčiny:

  1. Nestatický člen je určen ve statické členské funkci. Pokud chcete získat přístup k nestatickému členu, musíte předat nebo vytvořit místní instanci třídy a použít operátor člen-přístup (. nebo ->).

  2. Zadaný identifikátor není členem třídy, struktury nebo sjednocení. Kontrola pravopisu identifikátoru

  3. Operátor přístupu člena odkazuje na nečlennou funkci.

Příklad

  1. Následující příklad vygeneruje C2597 a ukazuje, jak ho opravit:
// 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;
}