重载为友元
#include<iostream> using namespace std; class complex { private: int real; int image; public: complex(); complex(int real_,int image_); void show(); friend complex operator +(const complex &c1,const complex &c2) { return complex(c1.real+c2.real,c1.image+c2.image); } }; complex::complex() { real = 0; image = 0; } complex::complex(int real_,int image_) { real = real_; image = image_; } void complex::show() { if(image>0) cout<<real<<"+j"<<image<<endl; else if(image<0) cout<<real<<"-j"<<-image<<endl; else cout<<real<<endl; } int main() { int r1,r2,i1,i2; complex c; cin>>r1>>i1; cin>>r2>>i2; complex a(r1,i1); complex b(r2,i2); a.show(); b.show(); c = a + b; c.show(); }