#include<iostream>
using namespace std;
class complex
{
public:
complex(double r = 0.0, double i = 0.0) { real = r; imag = i; }
friend complex operator + (complex c1, complex c2); //+重载为成员函数
friend complex operator - (complex c1, complex c2); //-重载为成员函数
void display(); //输出复数
private:
double real; //复数实部
double imag; //复数虚部
};
//重载函数实现
complex operator +(complex c1, complex c2)
{
complex tmp;
tmp.real = c1.real + c2.real;
tmp.imag = c1.imag + c2.imag;
return tmp;
}
//重载函数实现
complex operator -(complex c1, complex c2)
{
complex tmp;
tmp.real = c1.real - c2.real;
tmp.imag = c1.imag - c2.imag;
return tmp;
}
void complex::display()
{
cout << "(" << real << "," << imag << ")" << endl;
}
int main()
{
complex c1(5, 4), c2(2, 10), c3, c4;
cout << "c1="; c1.display();
cout << "c2="; c2.display();
c3 = c1 - c2; //使用重载运算符完成复数减法
cout << "c3=c1-c2=";
c3.display();
c4 = c1 + c2; //使用重载运算符完成复数加法
cout << "c4=c1+c2=";
c4.display();
}