• Source
    1. #include <bits/stdc++.h>
    2.  
    3. using namespace std;
    4.  
    5. class Shape {
    6. public:
    7. double height, base;
    8. Shape(double h, double base) : height(h), base(base) {}
    9. virtual double getArea() = 0;
    10. };
    11.  
    12. class Triangle : public Shape{
    13. public:
    14. Triangle(double h, double base) : Shape(h, base){}
    15. virtual double getArea() {
    16. return base*height/2;
    17. }
    18. };
    19.  
    20. class Rectangle : public Shape{
    21. public:
    22. Rectangle(double h, double base) : Shape(h, base){}
    23. virtual double getArea() {
    24. return base*height;
    25. }
    26. };
    27.  
    28. int main() {
    29. Shape *pointer;
    30. Triangle t(5, 6);
    31. Rectangle r(5, 7);
    32. pointer = &t;
    33. printf("%lf\n", pointer->getArea());
    34. pointer = &r;
    35. printf("%lf\n", pointer->getArea());
    36. return 0;
    37. }
    38.  
    39.