Create a base class `Shape`, and derive classes `Rectangle` and `Triangle`. Use functions to input dimensions and calculate area of each shape.
SOLUTION....
#include <iostream>
using namespace std;
// Base class
class Shape {
public:
virtual void input() = 0; // Pure virtual function
virtual void area() = 0; // Pure virtual function
};
// Derived class: Rectangle
class Rectangle : public Shape {
private:
float length, breadth;
public:
void input() override {
cout << "Enter length of rectangle: ";
cin >> length;
cout << "Enter breadth of rectangle: ";
cin >> breadth;
}
void area() override {
cout << "Area of Rectangle = " << (length * breadth) << endl;
}
};
// Derived class: Triangle
class Triangle : public Shape {
private:
float base, height;
public:
void input() override {
cout << "Enter base of triangle: ";
cin >> base;
cout << "Enter height of triangle: ";
cin >> height;
}
void area() override {
cout << "Area of Triangle = " << (0.5 * base * height) << endl;
}
};
// Main function
int main() {
Rectangle r;
Triangle t;
cout << "--- Rectangle ---" << endl;
r.input();
r.area();
cout << "\n--- Triangle ---" << endl;
t.input();
t.area();
return 0;
}
OUTPUT
