Compiler Warning (level 3) C4265
The latest version of this topic can be found at Compiler Warning (level 3) C4265.
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
{
public:
virtual void vmf();
~B();
// try the following line instead
// virtual ~B();
}; // C4265
int main()
{
B b;
}