Define, implement and test a Complex class, which has: (a) At least two construc
ID: 3862103 • Letter: D
Question
Define, implement and test a Complex class, which has: (a) At least two constructors. (b) A destructor. (c) Several Methods with functionality as described below: Returns real part. Returns imaginary part. Displays the number. Computes magnitude. Computes polar co-ordinates. Overloads operators +, -. * and/, with the corresponding operations. Overloads the operator ~ for complex conjugate. Overloads the operators == and != for comparison. The methods must make appropriate use of the reference variables, for arguments and returnExplanation / Answer
#include <iostream>
using namespace std;
class Complex {
float real;
float imag;
public:
Complex();
Complex(float r, float i);
ostream& operator<<(ostream &out,const Complex &c);
Complex operator+ (const Complex &num1, const Complex &num2);
Complex operator- (const Complex &num1, const Complex &num2);
Complex operator* (const Complex &num1, const Complex &num2);
Complex operator/ (const Complex &num1, const Complex &num2);
};
//Complex.cpp
#include "Complex.h"
Complex::Complex() //default
{
real = 0.0;
imag = 0.0
}
Complex::Complex(double r, double i)
{
real = r;
imag = i;
}
ostream& Complex::operator<< (ostream &out, const Complex &comp) {
out << comp.real << "+" << comp.imag << "i";
return out;
}
Complex Complex::operator+ (const Complex &num1, const Complex &num2) {
Complex answer;
answer.real = num1.real + num2.real;
answer.imag = num1.imag + num2.imag;
return answer;
}
Complex Complex::operator- (const Complex &num1, const Complex &num2) {
Complex answer;
answer.real = num1.real - num2.real;
answer.imag = num1.imag - num2.imag;
return answer;
}
Complex Complex::operator* (const Complex &num1, const Complex &num2) {
Complex answer;
answer.real = (num1.real * num2.real - num1.imag * num2.imag);
answer.imag = (num1.real * num2.imag + num1.imag * num2.real);
return answer;
}
Complex Complex::operator/ (const Complex &num1, const Complex &num2) {
Complex answer;
answer.real = (num1.real * num2.real + num1.imag * num2.imag) / (num2.real * num2.real + num2.imag * num2.imag);
answer.imag = (num1.imag * num2.real - num1.real * num2.imag) / (num2.real * num2.real + num2.imag * num2.imag);
return answer;
}
//main.cpp
#include <iostream>
#include "Complex.h"
using namespace std;
int main ()
{
Complex a(1,2);
Complex b(2,4);
Complex sum = a+b;
Complex min = a-b;
Complex mul = a*b;
Complex div = a/b;
cout<<"Num 1 is "<<a;
cout<<"Num 2 is "<<b;
cout<<"Sum of is"<<sum<<endl;
cout<<"Substraction is"<<min<<endl;
cout<<"Multiplication is"<<mul<<endl;
cout<<"Division is"<<div<<endl;
return 0;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.