home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
listings
/
v_10_07
/
1007056a
< prev
next >
Wrap
Text File
|
1992-05-06
|
1KB
|
59 lines
#include <iostream.h>
class rational
{
public:
rational() : num(0), denom(1) { }
rational(long n, long d = 1) : num(n), denom(d) { }
rational &operator+=(rational r);
rational &operator-=(rational r);
rational &operator*=(rational r);
rational &operator/=(rational r);
rational operator+();
rational operator-();
double to_double() { return (double)num / denom; }
friend ostream &operator<<(ostream &os, rational r);
private:
long num, denom;
void simplify();
};
inline rational rational::operator+() { return *this; }
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;
}
inline rational operator++(rational &r)
{
return r += 1;
}
inline rational operator--(rational &r)
{
return r -= 1;
}
rational operator++(rational &r, int);
rational operator--(rational &r, int);
istream &operator>>(istream &is, rational &r);