#include <iostream>
#include <string>
class Shape {
protected:
double area;
public:
Shape() : area(0) {}
virtual void calculateArea() = 0;
void displayArea() const {
std::cout << "Area: " << area << std::endl;
}
};
class Circle : public Shape {
private:
double radius;
public:
Circle(double r) : radius(r) {}
void calculateArea() override {
area = 3.14159 * radius * radius;
}
};
class Rectangle : public Shape {
private:
double length, width;
public:
Rectangle(double l, double w) : length(l), width(w) {}
void calculateArea() override {
area = length * width;
}
};
int main() {
Circle circle(5);
Rectangle rectangle(4, 6);
circle.calculateArea();
rectangle.calculateArea();
std::cout << "Circle ";
circle.displayArea();
std::cout << "Rectangle ";
rectangle.displayArea();
return 0;
}