This documentation is archived and is not being maintained.

Compiler Warning (level 3) C4265

Error Message

'class' : class has virtual functions, but destructor is not virtual

When a class has virtual functions but a nonvirtual destructor, objects of the type might not be destroyed properly when the class is destroyed through a base class pointer.

This warning is off by default. See Compiler Warnings That Are Off by Default for more information.

The following sample generates C4265:

// C4265.cpp
// compile with: /W3 /c
#pragma warning(default : 4265)
class B
   virtual void vmf();

   // try the following line instead
   // virtual ~B();
};   // C4265

int main()
   B b;