An Abstract Class is a class that cannot be instantiated directly and is designed to be a base class for other classes.
It contains at least one pure virtual function. A pure virtual function is a function with no implementation in the base class and must be overridden by derived classes.
virtual void functionName() = 0;
#include <iostream> using namespace std; class Shape { public: // Pure virtual function makes this class abstract virtual void draw() = 0; }; class Circle : public Shape { public: void draw() override { cout << "Drawing a Circle" << endl; } }; class Square : public Shape { public: void draw() override { cout << "Drawing a Square" << endl; } }; int main() { // Shape s; // Error! Cannot instantiate abstract class Circle c; Square s; Shape* shape1 = &c; Shape* shape2 = &s; shape1->draw(); // Calls Circle's draw() shape2->draw(); // Calls Square's draw() return 0; }
Shape
is an abstract class because it has a pure virtual function draw()
.Shape
directly.Circle
and Square
must provide their own implementation of draw()
.Help others discover Technorank Learning by sharing your honest experience.
Your support inspires us to keep building!