第7周项目1(1)实现复数类中的运算符重载

来源:互联网 发布:linux 守护进程 编辑:程序博客网 时间:2024/05/17 06:15
#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){    return Complex(real+c2.real,imag+c2.imag);}Complex Complex::operator-(const Complex &c2){    return Complex(real-c2.real,imag-c2.imag);}Complex Complex::operator*(const Complex &c2){    return Complex(real*c2.real+imag*c2.imag,real*imag+c2.real*c2.imag);}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;}void Complex::display(){    cout<<'('<<real<<','<<imag<<')'<<endl;}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;}


 

0 0
原创粉丝点击