Problem: Write a C++ program to add and subtract two complex numbers by overloading the + and – operators.

We often overload an operator in C++ to operate on user-defined objects.

If we define complex numbers as objects, we can easily use arithmetic operators such as additional (+) and subtraction (-) on complex numbers with operator overloading.

In the following C++ program, I have overloaded the + and operator to use it with the `Complex` class objects.

``````#include <iostream>
using namespace std;

class Complex{
public:
float real;
float img;

Complex(){
this->real = 0.0;
this->img = 0.0;
}

Complex(float real, float img){
this->real = real;
this->img = img;
}

Complex operator+(const Complex &obj){
Complex temp;
temp.img = this->img + obj.img;
temp.real = this->real + obj.real;
return temp;
}

Complex operator-(const Complex &obj){
Complex temp;
temp.img = this->img - obj.img;
temp.real = this->real - obj.real;
return temp;
}

void display(){
cout << this->real << " + " << this->img << "i" << endl;
}
};

int main()
{
Complex a, b, c;

cout << "Enter real and complex coefficient of the first complex number: " << endl;
cin >> a.real;
cin >> a.img;

cout << "Enter real and complex coefficient of the second complex number: " << endl;
cin >> b.real;
cin >> b.img;

c = a+b;
c.display();

cout << "Subtraction Result: ";
c = a-b;
c.display();

return 0;
}``````

Output:

Enter real and complex coefficient of the first complex number:
5 6
Enter real and complex coefficient of the second complex number:
1 2
Subtraction Result: 4 + 4i

## Explanation:

In the above program, we have created `Complex` class with two attributes:

• `real`: To store the real coefficient value.
• `img`: To store the imaginary coefficient value.

Inside the class declaration, we have overloaded the + operator by adding the real and imaginary values of the current instance (i.e `this`) and the passed instance (i.e. `obj`), inside the `operator+` method.

We store the result into a new complex object (i.e. `temp`) and return the same.

We do the same to overload the – operator, but instead of adding we subtract the corresponding coefficient.

In this programming example, we learned to add and subtract complex numbers using the concept of operator overloading in C++.