In this example, we will learn to subtract complex numbers using operator overloading of the - operator..

To understand this example, you should have the knowledge of the following C++ programming topics:

## Introduction

Since - is a binary operator( operator that operates on two operands ), one of the operands should be passed as argument to the operator function and the rest process is similar to the overloading of unary operators.

``````#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;
}

Complex operator - (Complex c2)
{
Complex temp;
temp.real = real - c2.real;
temp.imag = imag - c2.imag;

return temp;
}

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:\n";
c1.input();

cout<<"Enter second complex number:\n";
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;
result.output();

return 0;
}``````

## Working

In this program, three objects of type Complex are created and user is asked to enter the real and imaginary parts for two complex numbers which are stored in objects `c1` and `c2`.

Then statement `result = c1 -c 2` is executed. This statement invokes the operator function `Complex operator - (Complex c2)`.

When `result = c1 - c2` is executed, `c2` is passed as argument to the operator function.

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.

Then, this function returns the resultant complex number (object) to main() function which is displayed on to the screen. Though, this tutorial contains the overloading of - operators, binary operators in C++ programming like: +, *, <, += etc. can be overloaded in a similar manner.

We hope that this Example helped you develop better understanding of the concept of "Subtract Complex Number Using Operator Overloading" in C++.

Keep Learning : )