对运算符号进行重载,进行复数运算

来源:互联网 发布:开源中国app源码下载 编辑:程序博客网 时间:2024/05/21 14:00
#include <iostream.h>//using namespace std;class complex{public:complex(){real=0;image=0;}complex(double r){real=r;image=0;}complex(double r,double i){real=r;image=i;}friend complex operator +(complex&,complex&);friend complex operator -(complex&,complex&);friend complex operator *(complex&,complex&);friend complex operator /(complex&,complex&);void display(){cout<<real<<"+"<<image<<"i"<<endl;}private:double real;double image;};int main(){complex c1(2,5),c2(2,-3),c3;c3=c1+c2;c3.display();c3=c1-c2;c3.display();c3=c1*c2;c3.display();c3=c1/c2;c3.display();cin.get();return 0;}complex operator +(complex &c1,complex &c2){return complex(c1.real+c2.real,c1.image+c2.image);}complex operator -(complex &c1,complex &c2){return complex(c1.real-c2.real,c1.image-c2.image);}complex operator *(complex &c1,complex &c2){return complex(c1.real*c2.real-c1.image*c2.image ,c1.image*c2.real +c2.image*c1.real );}complex operator /(complex &c1,complex &c2){double d;d=c2.real*c2.real+c2.image*c2.image;return complex((c1.real*c2.real+c1.image*c2.image)/d,(c1.image*c2.real-c2.image*c1.real)/d);}

原创粉丝点击