Kompilatorfel C2597

illegal referens till icke-statisk medlemsidentifierare

Anmärkningar

Möjliga orsaker:

  1. En ickestatisk medlem anges i en statisk medlemsfunktion. För att få åtkomst till den icke-statiska medlemmen måste du skicka in eller skapa en lokal instans av klassen och använda en medlemsåtkomstoperator (. eller ->).

  2. Den angivna identifieraren är inte medlem i en klass, struktur eller union. Kontrollera stavning av identifierare.

  3. En medlemsåtkomstoperator syftar på en ickemedlemsfunktion.

Exempel

  1. Följande exempel genererar C2597 och visar hur du åtgärdar det:
// 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;
}