Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

write in c++ a code that will - a. Extend the definition of the class complexTyp

ID: 3677166 • Letter: W

Question

write in c++ a code that will

- a. Extend the definition of the class complexType so that it performs the subtraction and division operations. Overload the operators subtraction and division for this class as member functions. If (a, b) and (c, d ) are complex numbers: (a, b) - (c, d) = (a - c, b - d ). If (c, d ) is nonzero: (a, b) / (c, d) = ((ac + bd) / (c2 + d 2), (-ad + bc) / (c2 + d 2)).

b. Write the definitions of the functions to overload the operators - and / as defined in part a.

c. Write a test program that tests various operations on the class complexType. Format your answer with two decimal places.

Explanation / Answer


#include <iostream>
using namespace std;
class Complex
{
    private:
      float real;
      float imag;
    public:
       Complex(): real(0), imag(0){ }
       void input()
       {
           cout<<"Enter real and imaginary parts respectively: ";
           cin>>real;
           cin>>imag;
       }
       // - operator oveloading
       Complex operator - (Complex c2)    /* Operator Function */
       {
           Complex temp;
           temp.real=this->real-c2.real;
           temp.imag=this->imag-c2.imag;
           return temp;
       }
     
       // '/' division - operator overloading
       Complex operator /(Complex c2)
       {
       Complex c3;
       c3.real=((real*c2.real)+(imag*c2.imag))/((c2.real*c2.real)+(c2.imag*c2.imag));
       c3.imag=((imag*c2.real)-(real*c2.imag))/((c2.real*c2.real)+(c2.imag*c2.imag));
       return c3;
       }
       void output()
       {
           if(imag<0)
               cout<<"Output Complex number: "<<real<<imag<<"i";
           else
               cout<<"Output Complex number: "<<real<<"+"<<imag<<"i";
       }
};
int main()
{
    Complex c1, c2, result;
    cout<<"Enter first complex number: ";
    c1.input();
    cout<<"Enter second complex number: ";
    c2.input();
/* In case of operator overloading of binary operators in C++ programming, the object on right hand side of operator is always assumed as argument by compiler. */  
    result=c1-c2; /* c2 is furnised as an argument to the operator function. */
    result.output();
    return 0;
}