// @topic T53005 12/03/2012 -- Operator Overloading
// @brief Rational number demo

#include <iostream>
#include <iomanip> // for std::boolalpha

#include "rational.h"

int main ()
{
    Rational x( 1, 3 );
    Rational y( 5, 8 );
    Rational z = x;      // copy constructor
    x = -y;              // unary negation and assignment operators
    //x = y.operator-(); // member operator call
    x = operator-( y );  // non-member operator call
    std::cout << x;      // overloaded output operator

    //Equality comparison operator == returns boolean
    //result comparing two rational numbers:

    bool result = ( x == -y );
    std::cout '\n' << std::boolalpha << result << '\n';

    return 0;
}