#include #include using namespace std; class Shape{ private: int width, length; public: Shape() {} Shape(int _width, int _length) { width = _width; length = _length; } virtual int get_area() = 0; // only signature, the function will be written inside the derived classes int get_widht() { return width; } int get_length() { return length; } }; class Rectangle : public Shape { public: Rectangle(int width, int length) : Shape(width, length) { } int get_area() override { return get_length() * get_widht(); } }; class Square : public Shape { public: Square(int width, int length) : Shape(width, length) { } int get_area() override { return get_length() * get_widht(); } }; int main(){ Shape *rect = new Rectangle(4, 5); Shape *square = new Square(5, 5); cout << rect->get_area() << endl; cout << square -> get_area() << endl; return 0; }