Listing 5 (rational.h)

#include <stdio.h>

class rational
       {
public:
       rational() { }
       rational(long n) : num(n), denom(1) { }
       rational(long n, long d) : num(n), denom(d) { }
       rational &operator+=(rational);
       rational &operator-=(rational);
       rational &operator*=(rational);
       rational &operator/=(rational);
       void put(FILE *);
private:
       long num, denom;
       void simplify();
       };

inline rational
       operator+(rational r1, rational r2)
       {
       return r1 += r2;
       }

inline rational
       operator-(rational r1, rational r2)
       {
       return r1 -= r2;
       }

inline rational
       operator*(rational r1, rational r2)
       {
       return r1 *= r2;
       }

inline rational
       operator/(rational r1, rational r2)
       {
       return r1 /= r2;
       }

/* End of File */