您的位置:首页 > 其它

【转】【复】实现复数中的运算符重载

2016-06-07 21:41 225 查看
/* 

*Copyright (c) 2016,烟台大学计算机学院 

*All rights reserved. 

*文件名称:app.cpp 

*作    者:李磊涛 

*版 本 号:v1.0 



*问题描述:项目-实现复数类中的运算符重载。 

*程序输出:两个数的算法公式及结果。 

*/  

#include <iostream>    

using namespace std;    

class Complex     

{    

public:    

    Complex(){real=0;imag=0;}    

    Complex(double r,double i){real=r; imag=i;}    

    Complex operator+(const Complex &c2);    

    Complex operator-(const Complex &c2);    

    Complex operator*(const Complex &c2);    

    Complex operator/(const Complex &c2);    

    void display();    

private:    

    double real;    

    double imag;    

};    

//下面定义成员函数    

Complex Complex::operator+(const Complex &c2)   

{  

    Complex c;  

    c.real=real+c2.real;  

    c.imag=imag+c2.imag;  

    return c;  

}  

Complex Complex::operator*(const Complex &c2)  

{  

      

    Complex c;  

    c.real=real*c2.real-imag*c2.imag;    

    c.imag=imag*c2.real+real*c2.imag;  

    return c;  

  

}    

Complex Complex::operator/(const Complex &c2)  

{  

      

    Complex c;  

    c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);    

    c.imag=(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);    

    return c;  

  

}   

Complex Complex::operator-(const Complex &c2)  

{  

      

    Complex c;  

    c.real=real-c2.real;  

    c.imag=imag-c2.imag;  

    return c;  

  

}   

void Complex::display()  

{  

    cout<<"("<<real<<","<<imag<<"i)"<<endl;   

}  

//下面定义用于测试的main()函数    

int main()    

{    

    Complex c1(3,4),c2(5,-10),c3;    

    cout<<"c1=";    

    c1.display();    

    cout<<"c2=";    

    c2.display();    

    c3=c1+c2;    

    cout<<"c1+c2=";    

    c3.display();    

    c3=c1-c2;    

    cout<<"c1-c2=";    

    c3.display();    

    c3=c1*c2;    

    cout<<"c1*c2=";    

    c3.display();    

    c3=c1/c2;    

    cout<<"c1/c2=";    

    c3.display();    

    return 0;    

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: