30 long int fDenominator;
33 long int gcd(
long int a,
long int b);
37 rational(
long int num = 0,
long int denom = 1);
38 rational(
const rational& d);
39 rational(
const string &str);
41 long int getNumerator()
const {
return fNumerator; }
42 long int getDenominator()
const {
return fDenominator; }
43 void setNumerator(
long int d) { fNumerator = d; }
44 void setDenominator(
long int d) { fDenominator = d; }
45 void set(
long int n,
long int d) { fNumerator = n; fDenominator = d; }
47 rational operator +(
const rational &dur)
const;
48 rational operator -(
const rational &dur)
const;
50 rational operator *(
const rational &dur)
const;
51 rational operator /(
const rational &dur)
const;
54 rational operator *(
int num)
const;
55 rational operator /(
int num)
const;
57 rational& operator +=(
const rational &dur);
58 rational& operator -=(
const rational &dur);
60 rational& operator *=(
const rational &dur);
61 rational& operator /=(
const rational &dur);
64 rational& operator *=(
long int num) { fNumerator *= num;
return *
this; }
65 rational& operator /=(
long int num) { fDenominator *= num;
return *
this; }
67 rational& operator =(
const rational& dur);
69 bool operator >(
const rational &dur)
const;
70 bool operator >=(
const rational &dur)
const {
return !(*
this < dur);}
71 bool operator <(
const rational &dur)
const;
72 bool operator <=(
const rational &dur)
const {
return !(*
this > dur);}
74 bool operator ==(
const rational &dur)
const;
75 bool operator !=(
const rational &dur)
const {
return !(*
this == dur);}
77 bool operator > (
double num)
const;
78 bool operator >=(
double num)
const;
79 bool operator < (
double num)
const;
80 bool operator <=(
double num)
const;
81 bool operator ==(
double)
const;
85 void print (ostream& os)
const;
87 operator string ()
const;
88 operator double ()
const;
89 operator float ()
const;
90 operator int ()
const;
93 string toString()
const;
94 double toDouble()
const;
95 float toFloat()
const;