#include <bits/stdc++.h>
using namespace std;
class Shape {
public:
double height, base;
Shape(double h, double base) : height(h), base(base) {}
virtual double getArea() = 0;
};
class Triangle : public Shape{
public:
Triangle(double h, double base) : Shape(h, base){}
virtual double getArea() {
return base*height/2;
}
};
class Rectangle : public Shape{
public:
Rectangle(double h, double base) : Shape(h, base){}
virtual double getArea() {
return base*height;
}
};
int main() {
Shape *pointer;
Triangle t(5, 6);
Rectangle r(5, 7);
pointer = &t;
printf("%lf\n", pointer->getArea());
pointer = &r;
printf("%lf\n", pointer->getArea());
return 0;
}