i can't quite figure out how the arithmetic operators are supposed to be used, as 2 parameters are being passed in:

Code:#include <iostream> #include <cmath> using namespace std; class complex { private: double real; // real part double imag; // imaginary part public: complex(double x=0.0, double y=0.0); double magnitude() const; // return magnitude double realPart() const; // return real part double imagPart() const; // return imaginary part complex operator- (); friend complex operator+ (const complex& lhs, const complex &rhs); friend complex operator- (const complex& lhs, const complex &rhs); friend complex operator* (const complex& lhs, const complex &rhs); friend complex operator/ (const complex& lhs, const complex &rhs); friend bool operator== (const complex& lhs, const complex &rhs); friend ostream& operator << (ostream& ostr, const complex &x); friend istream& operator >> (istream& istr, complex &x); }; double complex::magnitude() const { double temp = 0.0; temp = (real * real) + (imag * imag); temp = sqrt(temp); } double complex::realPart() const { return real; } double complex::imagPart() const { return imag; } complex operator+ (const complex& lhs, const complex &rhs) { return complex(lhs.real - rhs.real, lhs.imag - rhs.imag); } complex operator- (const complex& lhs, const complex &rhs) { return complex(lhs.real - rhs.real, lhs.imag - rhs.imag); } int main() { // complex number i= 0 + 1i complex i(0,1), z1, z2; // input values cout << "Enter two complex numbers: "; cin >> z1 >> z2; cout << "Test the binary arithmetic operators:" << endl; cout << " z1 + z2 = " << (z1 + z2) << endl; cout << " z1 - z2 = " << (z1 - z2) << endl; cout << " z1 * z2 = " << (z1 * z2) << endl; cout << " z1 / z2 = " << (z1 / z2) << endl; // test relational equality if (z1 == z2) cout << z1 << " = " << z2 << endl; else cout << z1 << " != " << z2 << endl; // verify that i*i = -1 and that -i*i = 1 cout << "i*i = " << i*i << endl; cout << "-i*i = " << -i*i << endl; return 0; }