// client code that manipulates rational objects #include #include #include "rational.h" using namespace std; int main() { rational r1(3, 4), r2(5), r3; cout << "r1 = " << r1 << ", r2 = " << r2 << ", r3 = " << r3 << endl; cout << endl; rational r4(6, -16); cout << "r4 = " << r4 << endl; cout << endl; cout << "r1 = " << r1 << ", r2 = " << r2 << ", r3 = " << r3 << endl; r1 -= r4; r2 -= r4; r3 -= r4; cout << "r1 = " << r1 << ", r2 = " << r2 << ", r3 = " << r3 << endl; cout << endl; r3 = r1 -= r2; // operator=(r3, operator-=(r1, r2) cout << "r1 = " << r1 << ", r2 = " << r2 << ", r3 = " << r3 << endl; cout << endl; int x = 3, y = 7; y = x -= 1; cout << "x = " << x << ", y = " << y << endl; int z = x - y; cout << endl; r4 = r1 - r3; cout << "now r4 = " << r4 << endl; cout << endl; // the following line of code threw an exception // rational r5(3, 0); // cout << r5 << endl; rational r5(r3); if (r5 == r3) { cout << "r5 and r3 equal" << endl; } else { cout << "r5 and r3 not equal" << endl; } if (r1 == r2) { cout << "r1 and r2 equal" << endl; } else { cout << "r1 and r2 not equal" << endl; } cout << endl; cout << "r1 = " << r1 << ", r2 = " << r2 << ", r3 = " << r3 << endl; cout << "r1 <= r2 = " << (r1 <= r2) << endl; cout << "r1 <= r3 = " << (r1 <= r3) << endl; cout << "r2 <= r3 = " << (r2 <= r3) << endl; cout << endl; return 0; }