Teilen über


Compilerfehler C2597

Nicht zulässiger Verweis auf nicht statischen Member „identifier“

Bemerkungen

Mögliche Ursachen:

  1. Ein nicht statisches Member wird in einer statischen Memberfunktion angegeben. Für den Zugriff auf das nicht statische Member müssen Sie eine lokale Instanz der Klasse übergeben oder erstellen und einen Memberzugriffsoperator (. oder ->) verwenden.

  2. Der angegebene Bezeichner ist kein Member der Klasse, Struktur oder Union. Prüfen Sie die Schreibweise des Bezeichners.

  3. Ein Memberzugriffsoperator bezieht sich auf eine Nicht-Memberfunktion.

Beispiel

  1. Im folgenden Beispiel wird C2597 generiert und veranschaulicht, wie sie behoben werden:
// 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;
}