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!