円の面積がご指定の 7.065 とはならんけど.
C++
1struct CircleParam{ double r; };
2struct RectangleParam{ double a; double b; };
3struct TrapezoidParam{ double a; double b; double h; };
4
5class Menseki
6{
7private:
8 double area;
9public:
10 Menseki( std::ostream &Ostrm, const CircleParam &CP ){ Ostrm << (area = CP.r*CP.r*3.141592); }
11 Menseki( std::ostream &Ostrm, const RectangleParam &RP ){ Ostrm << (area = RP.a*RP.b); }
12 Menseki( std::ostream &Ostrm, const TrapezoidParam &TP ){ Ostrm << (area = (TP.a+TP.b)*TP.h/2.0 ); }
13};
14
15int main(void)
16{
17 Menseki( std::cout, CircleParam{ 1.5 } ); std::cout << "\n";
18 Menseki( std::cout, RectangleParam{ 5.2, 2.5 } ); std::cout << "\n";
19 Menseki( std::cout, { 2.5, 4.5, 3.0 } ); std::cout << std::endl;
20 return 0;
21}