Write a method to implement operator for the Complex class T

Write a method to implement operator++ for the Complex class. This method should result in the number having one added to the real component and return the new value of the number. This is the prefix version of the operator, so it would be used like this: Complex b = ++a; Write the code that would be in the cpp file. The header file contains: Complex &operator;++ ();//increments a Complex number by one FYI: The postfix version is similar, but uses a dummy int parameter to distinguish itself from the prefix version. The postfix version also returns by value, instead of reference.

Solution

//header file
#ifndef COMPLEX
#define COMPLEX

#include <iostream>
using namespace std;

class complex {
public:
complex(double real = 0.0, double imag = 0.0);

friend complex operator+ (const complex &x, const complex &y);
friend complex operator- (const complex &x, const complex &y);
friend complex operator* (const complex &x, const complex &y);
friend complex operator/ (const complex &x, const complex &y);
friend complex operator++ ();
friend ostream& operator<<(ostream &out, const complex &z);

private:
   double real;
   double imag;
};

#endif

---------------------------------------------------------------------------------------------------------------------------------------------------------------

#include \"complex.h\"

complex::complex(double realx, double imagx) : real(realx), imag(imagx) {
}

complex operator+ (const complex &x, const complex &y) {
   complex res;
   res.real = x.real + y.real;
   res.imag = x.imag + y.imag;
   return res;
}

complex operator- (const complex &x, const complex &y) {
   complex res;
   res.real = x.real - y.real;
   res.imag = x.imag - y.imag;
   return res;
}

complex operator* (const complex &x, const complex &y) {
   complex res;
   res.real = (x.real * y.real - x.imag * y.imag);
   res.imag = (x.real * y.imag + x.imag * y.real);
   return res;
}

complex operator/ (const complex &x, const complex &y) {
   complex res;
   res.real = (x.real * y.real + x.imag * y.imag) / (y.real * y.real + y.imag * y.imag);
   res.imag = (x.imag * y.real - x.real * y.imag) / (y.real * y.real + y.imag * y.imag);
   return res;
}

complex operator++ () {
   complex res;
   res.real = x.real + 1; // adding 1 to real number
   res.imag = x.imag; // imag number not modifying
   return res; // reurning new number
}

ostream& operator<< (ostream &out, const complex &z) {
   out << z.real << \"+\" << z.imag << \"imag\";
   return out;
}

 Write a method to implement operator++ for the Complex class. This method should result in the number having one added to the real component and return the new
 Write a method to implement operator++ for the Complex class. This method should result in the number having one added to the real component and return the new

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site