CPP Tutorial



C++ ABSTRACT CLASSES


Abstract Classes in C++

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.

Syntax of a Pure Virtual Function:

virtual void functionName() = 0;
  

Why use Abstract Classes?

  • To provide a common interface for all derived classes.
  • To force derived classes to implement certain methods.
  • Helps achieve polymorphism.

Example:

#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;
}
  

🖨️ Output:

Drawing a Circle
Drawing a Square

🔍 Explanation:

  • Shape is an abstract class because it has a pure virtual function draw().
  • You cannot create an object of Shape directly.
  • Derived classes Circle and Square must provide their own implementation of draw().
  • Using pointers to the base class allows polymorphic behavior.

🌟 Enjoyed Learning with Us?

Help others discover Technorank Learning by sharing your honest experience.
Your support inspires us to keep building!

Leave a Google Review