Compiler Warning (level 1) C4461
Collapse the table of content
Expand the table of content
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

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() {}
© 2016 Microsoft