Sorry for the double post.. Here is my updated code with all of the operators that the questions asks for. I've ran the program a lot and it seems to work good. The only thing left I have to do is the Unary Operator and I don't really understand it. So if someone could point me in the right direction that would be awesome and if you see anything wrong with my code, feel free to share. I'm open to anything
Thanks.
Code:
#include <iostream>
using namespace std;
class Rational {
public:
Rational(); //Default constructor
Rational(int); //Second constructor
Rational(int, int); //Third constructor
void setData(int, int);
int getNumer(); // accessor function
int getDenom(); // accessor function
Rational operator+(Rational &);
Rational operator-(Rational &);
Rational operator*(Rational &);
Rational operator/(Rational &);
bool operator==(Rational &);
bool operator<(Rational &);
bool operator>(Rational &);
bool operator<=(Rational &);
bool operator>=(Rational &);
void operator-();
private:
int numerator;
int denominator;
};
Rational::Rational()
{
numerator = 0; denominator = 1;
}
Rational::Rational(int whole_number)
{
whole_number/1;
}
Rational::Rational(int num, int den)
{
numerator = num; denominator = den;
}
void Rational::setData(int num, int den)
{
numerator = num; denominator = den;
}
int Rational::getNumer()
{
return numerator;
}
int Rational::getDenom()
{
return denominator;
}
istream& operator>>(istream &in, Rational &rationalObj)
{
int n, d;
cout << "Enter numerator and denominator: ";
in >> n >> d;
rationalObj.setData(n, d);
return in;
}
// external non-friend version; need two accessor functions
ostream& operator<<(ostream &out, Rational &rationalObj)
{
out << rationalObj.getNumer() << "/" << rationalObj.getDenom();
return out;
}
Rational Rational::operator+(Rational &obj2)
{
Rational sum;
sum.numerator = numerator + obj2.numerator;
sum.denominator = denominator + obj2.denominator;
return sum;
}
Rational Rational::operator-(Rational &obj2)
{
Rational diff;
diff.numerator = numerator - obj2.numerator;
diff.denominator = denominator - obj2.denominator;
return diff;
}
Rational Rational::operator*(Rational &obj2)
{
Rational product;
product.numerator = numerator * obj2.numerator;
product.denominator = denominator * obj2.denominator;
return product;
}
Rational Rational::operator/(Rational &obj2)
{
Rational quotient;
quotient.numerator = numerator * obj2.numerator;
quotient.denominator = denominator * obj2.denominator;
return quotient;
}
bool Rational::operator==(Rational &obj2)
{
return (numerator == obj2.numerator);
return (denominator == obj2.denominator);
}
bool Rational::operator<(Rational &obj2)
{
return (numerator < obj2.numerator);
return (denominator < obj2.denominator);
}
bool Rational::operator>(Rational &obj2)
{
return (numerator > obj2.numerator);
return (denominator > obj2.denominator);
}
bool Rational::operator<=(Rational &obj2)
{
return (numerator <= obj2.numerator);
return (denominator <= obj2.denominator);
}
bool Rational::operator>=(Rational &obj2)
{
return (numerator >= obj2.numerator);
return (denominator >= obj2.denominator);
}
void Rational::operator-()
{
numerator = -numerator;
denominator = -denominator;
}
int main()
{
Rational r1(1,2), r2, r3, r4, r5, r6, r7(-5, 10), r8;
r2.setData(10, 50);
r3 = r1 + r2;
cout << r1 << " + " << r2 << " = " << r3 << endl << endl;
cin >> r4;
cout << r4;
cout << endl << endl;
r5 = r1 * r4;
cout << r1 << " * " << r4 << " = " << r5 << endl << endl;
r6 = r2 / r3;
cout << r2 << " / " << r3 << " = " << r6 << endl << endl;
if (r1 == r2)
cout << r1 << " = " << r2 << endl;
else
cout << r1 << " does not equal " << r2 << endl;
cout << endl;
if (r2 < r4)
cout << r2 << " < " << r4 << endl;
else
cout << r4 << " is not greater than " << r2 << endl;
cout << endl;
if(r1 > r6)
cout << r1 << " > " << r6 << endl;
else
cout << r1 << " is not less than " << r6 << endl;
cout << endl;
if(r2 <= r2)
cout << r2 << " <= " << r2 << endl;
else
cout << r2 << " is not greater than or equal to " << r2 << endl;
cout << endl;
if(r2 >= r4)
cout << r2 << " >= " << r4 << endl;
else
cout << r4 << " is not less or equal to " << r2 << endl;
cout << endl;
-r8 = -r7 + r2;
cout << "r7 = " << r8 << endl;
cout << endl;
return 0;
}