RationalNumber operator * (const RationalNumber& B) const { if (!isFraction() || !B.isFraction()) { return RationalNumber(getRealNumber() * B.getRealNumber()); } return RationalNumber(numerator * B.numerator, denominator * B.denominator); }
RationalNumber operator / (const RationalNumber& B) const throw(std::domain_error) { if (!isFraction() || !B.isFraction()) { return RationalNumber(getRealNumber() / B.getRealNumber()); } if (B.numerator == 0) { throw std::domain_error("Division by zero!"); } return RationalNumber(numerator * B.denominator, denominator * B.numerator); }