Input and Output Streams
Output is easily accommodated by redefining the left shift operator <<, and providing a new meaning.
(ostream & out, const rational & value)
{ // print representation of rational number on // an output stream out << value.numerator() << '/' << value.denominator(); return out;