Pure Virtual Functions and Abstract Classes

C++ Specific —>

An abstract class contains at least one pure virtual function. Specify a virtual function as pure by placing = 0 at the end of its declaration. You don't have to supply a definition for a pure virtual function.

You cannot declare an instance of an abstract base class; you can use it only as a base class when declaring other classes.

END C++ Specific

Example

In the following program, draw() is a pure virtual function defined in the abstract class Shape. You cannot declare Shape objects. Shape acts as a base class for Rectangle and Circle. Rectangle and Circle provide definitions for draw(), so you can declare instances of those classes and call draw() for them.

// Example of a virtual function and abstract classes
#include <iostream.h>

class Shape
{
public:
   virtual void draw() = 0;
};

class Rectangle: public Shape
{
public:
   void draw();
};

class Circle : public Shape
{
public:
   void draw();
};