使用友元函数形式进行运算符重载
#include<iostream>usingnamespacestd;classComplex{private:intreal;intp_w_picpath;public:Complex(intreal=0,intp_w_picpath=0):real(real),p_w_picpath(p_w_picpath){cout<<"Complex::Complex():"<<this<<endl;}Complex(constComplex&x):real(x.real),p_w_picpath(x.p_w_picpath){cout<<"Complex::Complex(Complex&):"<<this<<endl;}~Complex(){cout<<"Complex::~Complex():"<<this<<endl;}friendComplexoperator+(Complex&a,Complex&b);friendComplexoperator-(Complex&a,Complex&b);voidshow();};Complexoperator+(Complex&a,Complex&b){returnComplex(a.real+b.real,a.p_w_picpath+b.p_w_picpath);}Complexoperator-(Complex&a,Complex&b){returnComplex(a.real-b.real,a.p_w_picpath-b.p_w_picpath);}voidComplex::show(){cout<<real;if(p_w_picpath>0)cout<<"+";cout<<p_w_picpath<<"i"<<endl;}intmain(intargc,char*argv[]){Complexa(10,20);Complexb(70,80);Complexc=a+b;Complexd=a-b;a.show();b.show();c.show();d.show();return0;}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。