/* ECP: FILEname=fig14_29.cpp */ /* 1*/ const double Pi = 3.1416; /* 2*/ class Circle : public Shape /* 3*/ { /* 4*/ private: /* 5*/ double Radius; /* 6*/ public: /* 7*/ Circle( double R = 0.0 ) : Radius( R ) /* 8*/ { Name = "circle"; } /* 9*/ double Area( ) const /*10*/ { return Pi * Radius * Radius; } /*11*/ }; /* 1*/ class Rectangle : public Shape /* 2*/ { /* 3*/ private: /* 4*/ double Length; /* 5*/ double Width; /* 6*/ public: /* 7*/ Rectangle( double L = 0.0, double W = 0.0 ) : /* 8*/ Length( L ), Width( W ) /* 9*/ { Name = "rectangle"; } /*10*/ double Area( ) const /*11*/ { return Length * Width; } /*12*/ }; /* 1*/ class Square : public Rectangle /* 2*/ { /* 3*/ public: /* 4*/ Square( double S = 0.0 ) : Rectangle( S, S ) /* 5*/ { Name = "square"; } /* 6*/ };