This documentation is archived and is not being maintained.

Compiler Warning (level 1) C4461

Error Message

'type' : this class has a finalizer 'finalizer' but no destructor 'dtor'

The presence of a finalizer in a type implies resources to delete. Unless a finalizer is explicitly called from the type's destructor, the common language runtime determines when to run the finalizer, after your object goes out of scope.

If you define a destructor in the type and explicitly call the finalizer from the destructor, you can deterministically run your finalizer.

For more information, see Destructors and Finalizers in Visual C++.


The following sample generates C4461.

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

// OK
ref struct B {
   ~B() {

   !B() {}