共用方式為


編譯器錯誤 C2597

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

備註

可能的原因:

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

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

  3. 成員存取運算子是指非成員函式。

範例

  1. 下列範例會產生 C2597,並示範如何修正此問題:
// 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;
}