class rational
    {
public:
    rational(long n = 0, long d = 1)
		: num(n), denom(d) { }
    rational &operator+=(rational r);
	friend rational operator+(rational r1, rational r2);
	// ...
private:
    long num, denom;
	// ...
    };

// ...

rational operator+(rational r1, rational r2)
    {
	rational r;
    r.num = r1.num * r2.denom + r2.num * r1.denom;
    r.denom = r1.denom * r2.denom;
    return r;
    }

