Write a method to implement operator++ for the Complex class. This method should
ID: 3784547 • Letter: W
Question
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.Explanation / Answer
//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;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.