C++ Operator Overload insertion operator << for cout

Description

C++ Operator Overload insertion operator << for cout

#include <iostream>
using namespace std;
class Complex//from   w w  w.j a v  a 2 s.  c  om
{
   // prototype for the overloaded insertion operator
   friend ostream& operator<<(ostream&, const Complex&);
   private:
   double realPart;
   double imaginaryPart;
   public:
   Complex(double real = 0.0, double imag = 0.0)  // inline constructor
   {
      realPart = real;
      imaginaryPart = imag;
   }
};
// overloaded insertion operator function
ostream& operator<<(ostream& out, const Complex& num)
{
   char sign = '+';                      // set the
   if (num.imaginaryPart < 0) 
      sign = '-';  // correct sign
   if (num.realPart == 0 && num.imaginaryPart == 0)
          cout << 0;
   else if (num.imaginaryPart == 0)
          cout << num.realPart;
   else if (num.realPart == 0)
          cout << num.imaginaryPart << 'i';
   else
          cout << num.realPart << ' ' << sign << ' ' << abs(num.imaginaryPart) << 'i';
   return out;
}
int main()
{
   Complex complexOne(12.5,-18.2);
   cout << "The complex number just created is " << complexOne << endl;
   return 0;
}



PreviousNext

Related