Pure virtual function is the function in the base class with no body. Since no body, you have to
add the notation =0 for declaration of the pure virtual function in the base class.
The base class with pure virtual function can’t be instantiated since there is no definition of the
function in the base class. It is necessary for the derived class to override pure virtual function.
This type of class with one or more pure virtual function is called abstract class which can’t be
instantiated, it can only be inherited.

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