Share via


編譯器錯誤 C2597

參考非靜態成員 'identifier' 是不合法的

可能的原因:

  1. 非靜態成員指定在靜態成員函式內。 若要存取非靜態成員,您必須建立類別的執行個體,並使用成員存取運算子 (. 或 ->)。

  2. 指定的識別項不是類別、結構或等位的成員。

  3. 成員存取運算子參考到非成員函式。

  4. 下列範例會產生 C2597:

// C2597.cpp
// compile with: /c
struct s1 {
   static void func();
   int i;
};

void s1::func() {
   i = 1;    // C2597

   // OK
   s1 a;
   a.i = 1;
}