Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: C++
Expertise: All
Sep 17, 1998



Building the Right Environment to Support AI, Machine Learning and Deep Learning

A Pure Virtual Destructor

Unlike ordinary member functions, a virtual destructor is not overridden when redefined in a derived class. Rather, it is extended: the lower-most destructor first invokes the destructor of its base class and only then, it is executed. Consequently, when you try to declare a pure virtual destructor, you may encounter compilation errors, or worse: a runtime crash. However, there's no need to despair--you can enjoy both worlds by declaring a pure virtual destructor without a risk. The abstract class should contain a declaration (without a definition) of a pure virtual destructor:
	//Interface.h file
class Interface {
		virtual ~Interface() = 0; //pure virtual destructor declaration
Somewhere outside the class declaration, the pure virtual destructor has to be defined like this:
	//Interface.cpp file
{} //definition of a pure virtual destructor; should always be empty
Danny Kalev
Thanks for your registration, follow us on our social networks to keep up-to-date