Software & Finance

C++ - Abstract Class

A class with at least one pure virtual function is called abstract class. We can not instantiate an abstract class.

A pure virtual function is nothing but no implementation and assigned with 0. For example:
virtual void draw() = 0; You can not instantiate the Shape class in the given example. In order to instantiate, you must override this function with a derived class. In the sample code given below, Circle is a dervied class dervied from the class Shape.

Source Code


class Shape



    virtual void draw() = 0; // pure virtual function



class Circle : public Shape


    int r;





        std::cout << "Circle\n\n";



    virtual void draw() {}

    virtual void display() { }


void main()


    Shape s; // error C2259: 'Shape' : cannot instantiate abstract class due to following members: 'void Shape::draw(void)' : is abstract