#include using namespace std; class Complex { public: Complex& operator+=(const Complex& rhs) { this->r += rhs.r; this->i += rhs.i; return *this; } Complex& operator-=(const Complex& rhs) { this->r -= rhs.r; this->i -= rhs.i; return *this; } Complex& operator*=(const Complex& rhs) { this->r = (this->r * rhs.r) - (this->i * rhs.i); this->i = (this->r * rhs.i) + (this->i * rhs.r); return *this; } Complex() : r(0), i(0) {}; Complex(int r_) : r(r_), i(0) {} Complex(int r_, int i_) : r(r_), i(i_) {} Complex(const Complex& rhs) : r(rhs.r), i(rhs.i) {} friend std::ostream& operator<<(std::ostream& lhs, const Complex& rhs); friend bool operator == (const Complex& lhs, const Complex& rhs); private: int r; int i; }; std::ostream& operator<<(std::ostream& lhs, const Complex& rhs) { return lhs << '(' << rhs.r << " + " << rhs.i << "i)"; } bool operator == (const Complex& lhs, const Complex& rhs) { return lhs.r == rhs.r && lhs.i == rhs.i; } Complex operator+(const Complex& lhs, const Complex& rhs) { Complex temp(lhs); temp += rhs; return temp; } Complex operator-(const Complex& lhs, const Complex& rhs) { Complex temp(lhs); temp -= rhs; return temp; } Complex operator*(const Complex& lhs, const Complex& rhs) { Complex temp(lhs); temp *= rhs; return temp; } int main() { Complex first; Complex second(-4); Complex third(1,-2); Complex fourth(-1,2); Complex fifth(3,0); Complex sixth(0,3); Complex seventh(5,3); Complex eighth(6,10); Complex ninth(7,4); Complex tenth(-14,8); cout << endl; if (third == fourth) cout << "The complex numbers are equal." << endl; else cout << "The complex numbers are not equal." << endl; if (first == first) cout << "The complex numbers are equal." << endl; else cout << "The complex numbers are not equal." << endl; if (first == third + fourth) cout << "The complex numbers are equal." << endl; else cout << "The complex numbers are not equal." << endl; cout << endl; cout << first << " + " << second << " = " << first + second << endl; cout << first << " - " << second << " = " << first - second << endl; cout << first << " * " << second << " = " << first * second << endl; // cout << "-" << second << " = " << -second << endl; cout << endl; cout << third << " + " << fourth << " = " << third + fourth << endl; cout << third << " - " << fourth << " = " << third - fourth << endl; cout << third << " * " << fourth << " = " << third * fourth << endl; // cout << "-" << third << " = " << -third << endl; cout << endl; cout << fifth << " + " << sixth << " = " << fifth + sixth << endl; cout << fifth << " - " << sixth << " = " << fifth - sixth << endl; cout << fifth << " * " << sixth << " = " << fifth * sixth << endl; // cout << "-" << fifth - sixth << " = " << -(fifth - sixth) << endl; cout << endl; cout << seventh << " + " << eighth << " = " << seventh + eighth << endl; cout << seventh << " - " << eighth << " = " << seventh - eighth << endl; cout << seventh << " * " << eighth << " = " << seventh * eighth << endl; // cout << "-" << seventh * eighth << " = " << -(seventh * eighth) << endl; cout << endl; cout << ninth << " + " << tenth << " = " << ninth + tenth << endl; cout << ninth << " - " << tenth << " = " << ninth - tenth << endl; cout << ninth << " * " << tenth << " = " << ninth * tenth << endl; // cout << "-" << ninth + tenth << " = " << -(ninth + eighth) << endl; cout << endl; system("pause"); return 0; }