Partager via


Erreur du compilateur C2597

référence illégale au membre 'identifier' non statique

Causes possibles :

  1. Un membre non statique est spécifié dans une fonction membre statique. Pour accéder au membre non statique, vous devez transmettre ou créer une instance locale de la classe et utiliser un opérateur d'accès au membre (. ou ->).

  2. L'identificateur spécifié n'est pas un membre d'une classe, d'une structure ni d'une union. Vérifiez l'orthographe de l'identificateur.

  3. Un opérateur d'accès au membre fait référence à une fonction non membre.

  4. L'exemple suivant génère l'erreur C2597 et montre comment la corriger :

// 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;
}