#include<iostream>
#include<string>
using namespace std;
template<typename T> class Complex
{
public:
Complex(T real, T imaginary)
{
Real = real;
Imaginary = imaginary;
};
~Complex()
{
};
friend ostream& operator << (ostream& os, const Complex& object)
{
os << object.Real << " + " << object.Imaginary << "i";
return os;
};
Complex operator + (Complex& op2)
{
return Complex(Real + op2.Real, Imaginary + op2.Imaginary);
};
Complex operator - (Complex& op2)
{
return Complex(Real - op2.Real, Imaginary - op2.Imaginary);
};
T Real, Imaginary;
};
void main()
{
Complex<double> MyComplex(10.0, 20.0);
Complex<double> MyComplex2(10.0, 20.0);
cout << MyComplex - MyComplex2 << endl;
}