C++ - Abstract Class
A class with at least one pure virtual function is called abstract class. We can not instantiate an abstract class. class Shape { protected: virtual void draw() = 0; // pure virtual function } class Circle : public Shape { int r; public: Circle() { 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 }
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