#include<iostream>
using namespace std;
class Complex
{ public:
Complex() {real=0;imag=0;}
Complex(double r, double i) {real=r; imag=i; }
Complex operator+(Complex a);
//friend Complex operator+(Complex &a, Complex &b);//?不懂为什么声明里也要用&
void display();
private:
double real;
double imag;
};
Complex Complex::operator+(Complex a)//有无&都可以,声明必须和函数头一致
{return Complex(a.real+real, a.imag+imag);}
/* Complex operator+(Complex &a, Complex &b)
{return Complex(a.real+b.real, a.imag+b.imag);}*/
void Complex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;}
int main()
{ Complex c1(3,4), c2(5,-10),c3;
c3=c1+c2;
cout<<"c1="; c1.display();
cout<<"c2="; c2.display();
cout<<"c1+c2="; c3.display();
return 0;
}