Udostępnij za pomocą


Błąd kompilatora C2597

niedozwolone odwołanie do niestacjonanego elementu członkowskiego "identyfikator"

Uwagi

Możliwe przyczyny:

  1. Niestatyczny element członkowski jest określony w funkcji statycznej składowej. Aby uzyskać dostęp do niestatycznego elementu członkowskiego, musisz przekazać lub utworzyć lokalne wystąpienie klasy i użyć operatora dostępu do składowej (. lub ->).

  2. Określony identyfikator nie jest elementem członkowskim klasy, struktury ani unii. Sprawdź pisownię identyfikatora.

  3. Operator dostępu do elementu członkowskiego odwołuje się do funkcji nieczłonkowej.

Przykład

  1. Poniższy przykład generuje kod C2597 i pokazuje, jak go naprawić:
// 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;
}