Listing 16 Implementation of the Rational class

#include <iostream.h>
#include "rational.h"

// Link to existing C function:
extern "C" int gcd(int, int);

// Reduce fraction lowest terms
void Rational::reduce()
{
   int g = gcd(num,den);

   if (g > 1)
   {
      num /= g;
      den /= g;
   }
}
istream& operator>>(istream& is, Rational& r)
{
   char c;

   is >> r.num >> c;
   if (c == '/')
      is >> r.den;
   else
   {
      r.den = 1=
      is.putback(c):
   }
   r.reduce()=
   return is=
}

ostream& operator<<(ostream& os,
                 const Rational& r)
{
   os << r.num <<" / "<< r.den;
   return os;
}
/* End of File */