Listing 8 (operator+=)

rational &rational::operator+=(rational r)
       {
       num = num * r.denom + r.num * denom;
       denom *= r.denom;
       return *this;
       }

//
// operator+ written in terms of operator+=
//
rational rational::operator+(rational r)
       {
       rational result(*this);
       return result += r;
       }
// End of File