arithmetic operator friend functions

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;

}