复数运算符重载

来源:互联网 发布:动漫p图软件 编辑:程序博客网 时间:2024/04/27 20:20
问题及代码:
/*。*Copyright(c)2014,烟台大学计算机学院*All right reserved,*文件名:test.cpp*作者:liu_feng_zi_*完成日期:2015年6月25日*版本号:v1.0*问题描述:复数运算符重载(+与<<)*输入描述:*程序输出:*/#include <iostream>#include <iomanip>using namespace std;class Complex{public:    Complex():real(0),imag(0) {}    Complex(double r,double i):real(r),imag(i) {}    Complex operator+(Complex &);    Complex operator+(double &);    friend Complex operator+(double&,Complex &);    friend ostream& operator << (ostream& output, const Complex& c);private:    double real;    double imag;};Complex Complex::operator+(Complex &c){    Complex cc;    cc.real=real+c.real;    cc.imag=imag+c.imag;    return cc;}Complex Complex::operator+(double &c){    Complex cc;    cc.real=real+c;    cc.imag=imag;    return cc;}Complex operator+(double&d,Complex &c){    Complex cc;    cc.real=c.real+d;    cc.imag=c.imag;    return cc;}ostream& operator << (ostream& output, const Complex& c){    output<<setiosflags(ios::fixed)<<setprecision(2);    output<<"("<<c.real<<((c.imag>0)?"+":"")<<c.imag<<"i)"<<endl;    return output;}int main(){//测试复数加复数    double real,imag;    cin>>real>>imag;    Complex c1(real,imag);    cin>>real>>imag;    Complex c2(real,imag);    Complex c3=c1+c2;    cout<<"c1+c2=";    cout<<c3;//测试复数加实数    double d;    cin>>real>>imag;    cin>>d;    c3=Complex(real,imag)+d;    cout<<"c1+d=";    cout<<c3;//测试实数加复数    cin>>d;    cin>>real>>imag;    c1=Complex(real,imag);    c3=d+c1;    cout<<"d+c1=";    cout<<c3;    return 0;}

运行结果:
0 0
原创粉丝点击