This is a program with quadratic equation. The equations are working ok. I can get r1, r2, i1 and i2 to print ok out of the "solve" function, but I cannot get them to print by overloading the << operator. I have difficulty with overloading, and I know I'm doing something wrong, I just don't know what.

Also, I have to declare double r1, r2, i1 and i2 in both the class complex, and the solve function, or it won't work. What am I doing wrong??

Code:#include<iostream.h> #include<math.h> class complex{ double c; double r1, r2, i1, i2; public: void solve(double, double, double); friend ostream& operator<<(ostream&, complex ) ; }; ostream& operator<<(ostream& out, complex c ) { out << "The solutions are: " << c.r1 << " + " << c.i1 << c.r2 << " + " << c.i2 << endl; return out; } void solve(double a, double b, double c) { double disc = b*b - 4.0*a*c; double r1, r2, i1 = 0, i2 = 0; if( disc >= 0){ r1 = (-b + sqrt(disc) )/(2.0*a); r2 = (-b - sqrt(disc) )/(2.0*a); } else{ r1 = r2 = -b / (2.0*a); i1 = sqrt(-disc) / (2.0*a); i2 = -i1; } // cout << "The solutions are:\n"; // cout << r1 << "+" << i1 << "i\n"; // cout << r2 << "+" << i2 << "i\n"; } void getCoeff(double& a, double &b, double &c) { cout << "please insert the coefficeints:\n"; cin >> a>>b>>c; } void main() { double a, b, c; getCoeff(a,b,c); solve(a, b, c); getCoeff(a,b,c); solve(a,b,c);//C3, C4); }