// @topic T53015 12/03/2012 -- Operator Overloading
// @brief class Rational declaration
#ifndef _RATIONAL_H_INCLUDED_
#define _RATIONAL_H_INCLUDED_
#include <iostream>
// rational.h
class Rational {
friend std::ostream& operator<<( std::ostream& ostr, Rational const& rat );
friend Rational operator-( Rational const& rat );
int m_n; // numerator
int m_d; // denominator
public:
// Constructors
Rational( int num, int denom );
Rational( Rational const& other ); // copy ctr
// Member Unary negation, as in: x = -y
//Rational operator-() const;
// Member binary equality test operator
bool operator==( Rational const& other) const;
// Assignment overloaded:
Rational& operator=( Rational const& other );
};
// Non-member overloaded operator declarations:
Rational operator-( Rational const& rat );
std::ostream& operator<<( std::ostream& ostr, Rational const& rat );
#endif //_RATIONAL_H_INCLUDED_