Upozornění kompilátoru (úroveň 1) C4461
'type' : tato třída má finalizátor 'finalizer', ale žádný destruktor 'dtor'
Přítomnost finalizátoru v typu znamená prostředky, které se mají odstranit. Pokud není finalizátor explicitně volána z destruktoru typu, modul CLR (Common Language Runtime) určuje, kdy se má finalizátor spustit, po ukončení oboru objektu.
Pokud definujete destruktor v typu a explicitně zavoláte finalizátor z destruktoru, můžete deterministicky spustit finalizátor.
Další informace naleznete v tématu Destruktory a finalizátory.
Příklad
Následující ukázka vygeneruje C4461.
// C4461.cpp
// compile with: /W1 /clr /c
ref class A {
protected:
!A() {} // C4461
};
// OK
ref struct B {
~B() {
B::!B();
}
!B() {}
};