分享方式:


編譯器警告 (層級 1) C4461

'type' :這個類別具有完成項 'finalizer' ,但沒有解構函式 'dtor'

型別中存在完成項表示要刪除的資源。 除非明確從類型的解構函式呼叫完成項,否則 Common Language Runtime 會在物件超出範圍之後決定何時執行完成項。

如果您在型別中定義解構函式,並從解構函式明確呼叫完成項,您可以確定性地執行完成項。

如需詳細資訊,請參閱 解構函式和完成項

範例

下列範例會產生 C4461。

// C4461.cpp
// compile with: /W1 /clr /c
ref class A {
protected:
   !A() {}   // C4461
};

// OK
ref struct B {
   ~B() {
      B::!B();
   }

   !B() {}
};