/* Aufgabe: Schreibe ein C++-Programm, das Polymorphie verwendet, um die Fläche von verschiedenen Formen (z.B. Kreis, Rechteck, Dreieck) auszugeben. *Anforderungen: Definiere eine abstrakte Basisklasse Shape mit einer virtuellen Funktion calculateArea(), die die Fläche der Form zurückgibt. Erstelle drei abgeleitete Klassen: Circle, Rectangle und Triangle. Jede Klasse sollte die calculateArea()-Funktion überschreiben, um ihre eigene Fläche zu berechnen. Im Hauptprogramm erstelle Objekte jeder Form-Typ und rufe die calculateArea()-Funktion auf jedem Objekt auf. *Beispiel-Ausgabe: Für einen Kreis mit Radius 5: "Kreis-Fläche: 78,5" Für ein Rechteck mit Breite 4 und Höhe 6: "Rechteck-Fläche: 24" Für ein Dreieck mit Basis 3 und Höhe 4: "Dreieck-Fläche: 6" */ #include using namespace std; // Abstract base class Shape class Shape { public: virtual double calculateArea() = 0; // Pure virtual function }; // Derived class Circle class Circle : public Shape { private: double radius; public: Circle(double r) : radius(r) {} double calculateArea() override { // Override the pure virtual function return 3.14 * radius * radius; } }; // Derived class Rectangle class Rectangle : public Shape { private: double width, height; public: Rectangle(double w, double h) : width(w), height(h) {} double calculateArea() override { // Override the pure virtual function return width * height; } }; // Derived class Triangle class Triangle : public Shape { private: double base, height; public: Triangle(double b, double h) : base(b), height(h) {} double calculateArea() override { // Override the pure virtual function return 0.5 * base * height; } }; int main() { Circle c(5); Rectangle r(4, 6); Triangle t(3, 4); cout << "Circle area: " << c.calculateArea() << endl; cout << "Rectangle area: " << r.calculateArea() << endl; cout << "Triangle area: " << t.calculateArea() << endl; return 0; }