
Listing 4

//
// rational.cpp
//
#include "rational.h"

rational rational::operator+(rational r)
	{
	rational result;
	result.num = num * r.denom + r.num * denom;
	result.denom = denom * r.denom;
	return result;
	}

rational rational::operator-(rational r)
	{
	rational result;
	result.num = num * r.denom - r.num * denom;
	result.denom = denom * r.denom;
	return result;
	}

rational rational::operator*(rational r)
	{
	rational result;
	result.num = num * r.num;
	result.denom = denom * r.denom;
	return result;
	}

rational rational::operator/(rational r)
	{
	rational result;
	result.num = num * r.denom;
	result.denom = denom * r.num;
	return result;
	}

void rational::put(FILE *f)
	{
	fprintf(f, "(%ld/%ld)", num, denom);
	}

