共用方式為


編譯器錯誤 C2355

'this':只能在非靜態成員函式或非靜態資料成員初始設定式內部參考

this 指標只在非靜態成員函式或非靜態資料成員初始設定式內部才有效。 在類別宣告之外的成員函式定義的類別範圍不正確地限定時,就會產生這個錯誤。 在該類別中未宣告的函式中使用 this 指標時,也可能會發生錯誤。

若要修正此問題,請確定成員函式定義符合類別中的成員函式宣告,而且未宣告為靜態。 關於資料成員初始設定式,請確定資料成員未宣告為靜態。

下列範例會產生 C2355,並示範如何修正此問題:

// C2355.cpp
// compile with: /c
class MyClass {};
MyClass *p = this;   // C2355

// OK
class MyClass2 {
public:
   void Test() {
      MyClass2 *p = this;
   }
};