Subtracting Complex Numbers With Overloaded Operators In C++


Write a C++ program to use overloaded operators to subtract complex numbers.

Click Here to View the Solution:
#include <iostream>
using namespace std;
class ComplexSub
        float R;
        float Img;
        ComplexSub(): R(0), Img(0){ }
    void IN()
        cout << "Enter the Real and Imaginary values of complex number:\n";           
        cin >> R;
        cin >> Img;
    // Operator overloading
    ComplexSub operator - (ComplexSub cs)
        ComplexSub TempVar;
        TempVar.R = R - cs.R;
        TempVar.Img = Img - cs.Img;
        return TempVar;
    void OUT()
        if(Img < 0)
        cout << "Complex number: "<< R << Img << "i";
        cout << "Complex number: " << R << "+" << Img << "i";
int main()
    ComplexSub clx1, clx2, ans;
    cout<<"~1st entry~\n";
    cout<<"~2nd entry~\n";
    // the object on right hand side of operator is considered as argument by compiler.
    ans = clx1 - clx2;
    return 0;

Click Here to View the Output:
~1st entry~
 Enter the Real and Imaginary values of complex number:
 ~2nd entry~
 Enter the Real and Imaginary values of complex number:
 Complex number: 5+4i
Click Here to View the Explanation:
  • There is a separate variable type to handle complex numbers. Hence, three variables of Complex type are created c1x1, c1x2, and ans.
  • User is requested to enter two complex numbers c1x1 and c1x2.
  • Function is created ans = c1x1 - c1x2. The operator function ComplexSub Operator - (ComplexSub cs) is triggered with this.
  • After the execution of ans = c1x1 - c1x2, c1x2 acts an argument for the operator function. This is because wherever binary operators are involved in C++ coding, the variable/object at the right of the operator always acts as an argument.
  • When the code is executed, the resulting complex number is retuned to the main () function and printed on your screen.
  • A similar overloading of operators can be done for binary operators, too. These include addition, multiplication, division (+, *, /, etc).