
Listing 5

class rational
    {
public:
    rational() : num(0), denom(1) { }
    ...
    long rational::numerator() { return num; }
    long rational::denominator() { return denom; }
private:
    long num, denom;
    void simplify();
    };

...

ostream &operator<<(ostream &os, rational r)
    {
    os  << '(' << r.numerator() << '/'
        << r.denominator() << ')';
    }

