第12周项目1—实现复数类的运算符重载——3

来源:互联网 发布:什么是数据猿 编辑:程序博客网 时间:2024/05/03 10:40
/**Copyright (c) 2016,烟台大学计算机学院*All rights reserved.*文件名称 :*作 者 : 徐聪*完成日期 : 2016年5月24号*版 本 号 : v6.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 double &d);    friend Complex operator+(const double &d,const Complex &c);    friend Complex operator+(const Complex &c1,const Complex &c2);    friend Complex operator-(const Complex &c1,const Complex &c2);    friend Complex operator*(const Complex &c1,const Complex &c2);    friend Complex operator/(const Complex &c1,const Complex &c2);    void display();private:    double real;    double imag;} ;//下面定义成员函数Complex operator+(const double &d,const Complex &c){    return Complex(c.real+d,c.imag);}Complex operator+(const Complex &c1,const Complex &c2){    return Complex(c1.real+c2.real,c1.imag+c2.imag);}Complex operator-(const Complex &c1,const Complex &c2){    return Complex(c1.real-c2.real,c1.imag-c2.imag);}Complex operator*(const Complex &c1,const Complex &c2){    return Complex(c1.real*c2.real-c1.imag*c2.imag,c1.real*c2.imag+c1.imag*c2.real);}Complex operator/(const Complex &c1,const Complex &c2){    return Complex((c1.real*c2.real+c1.imag*c2.imag)/(c2.imag*c2.imag+c2.real*c2.real),(-c1.real*c2.imag+c1.imag*c2.real)/(c2.imag*c2.imag+c2.real*c2.real));}void Complex::display(){    cout<<"("<<real<<","<<imag<<"i)"<<endl;}Complex Complex::operator+(const double &d){    return Complex(this->real+d,imag);}//下面定义用于测试的main()函数int main(){    Complex c1(3,4),c2(5,-10),c3;    double d;    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();    cin>>d;    c3=d+c3;    c3.display();    c3=c3+d;    c3.display();    return 0;}

运行结果


0 0
原创粉丝点击