第八周 课后实践:项目一——实现复数类中的运算符重载(3)
来源:互联网 发布:vision软件作用 编辑:程序博客网 时间:2024/04/27 22:30
问题及代码:
#include <iostream>using namespace std;class Complex{public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r; imag=i;} friend Complex operator+(Complex &c1,Complex &c2); friend Complex operator+(double d1, Complex &c2); friend Complex operator+(Complex &c1, double d2); friend Complex operator-(Complex &c1,Complex &c2); friend Complex operator-(double d1, Complex &c2); friend Complex operator-(Complex &c1, double d2); friend Complex operator*(Complex &c1,Complex &c2); friend Complex operator*(double d1, Complex &c2); friend Complex operator*(Complex &c1, double d2); friend Complex operator/(Complex &c1,Complex &c2); friend Complex operator/(double d1, Complex &c2); friend Complex operator/(Complex &c1, double d2); void display();private: double real; double imag;};//下面定义成员函数Complex operator+(Complex &c1,Complex &c2){ return Complex(c1.real+c2.real,c1.imag+c2.imag);}Complex operator+(double d1,Complex &c2){ Complex c(d1,0); return c+c2;}Complex operator+(Complex &c1,double d2){ Complex c(d2,0); return c1+c;}Complex operator-(Complex &c1,Complex &c2){ return Complex(c1.real-c2.real,c1.imag-c2.imag);}Complex operator-(double d1,Complex &c2){ Complex c(d1,0); return c-c2;}Complex operator-(Complex &c1,double d2){ Complex c(d2,0); return c1-c;}Complex operator*(Complex &c1,Complex &c2){ Complex c; c.real=c1.real*c2.real-c1.imag*c2.imag; c.imag=c1.imag*c2.real+c1.real*c2.imag; return c;}Complex operator*(double d1,Complex &c2){ Complex c(d1,0); return c*c2;}Complex operator*(Complex &c1,double d2){ Complex c(d2,0); return c1*c;}Complex operator/(Complex &c1,Complex &c2){ Complex c; c.real=(c1.real*c2.real+c1.imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag); c.imag=(c1.imag*c2.real-c1.real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag); return c;}Complex operator/(double d1,Complex &c2){ Complex c(d1,0); return c/c2;}Complex operator/(Complex &c1,double d2){ Complex c(d2,0); return c1/c;}void Complex::display(){ cout<<"("<<real<<","<<imag<<"i)"<<endl;}//下面定义用于测试的main()函数int main(){ Complex c1(3,4),c2(5,-10),c3; double d=6; cout<<"c1="; c1.display(); cout<<"c2="; c2.display(); cout<<"d="<<d<<endl; c3=c1+c2; cout<<"c1+c2="; c3.display(); cout<<"c1+d"; (c1+d).display(); cout<<"d+c1="; (d+c1).display(); c3=c1-c2; cout<<"c1-c2="; c3.display(); cout<<"c1-d="; (c1-d).display(); cout<<"d-c1="; (d-c1).display(); c3=c1*c2; cout<<"c1*c2="; c3.display(); cout<<"c1*d="; (c1*d).display(); cout<<"d*c1="; (d*c1).display(); c3=c1/c2; cout<<"c1/c2="; c3.display(); cout<<"c1/d="; (c1/d).display(); cout<<"d/c1="; (d/c1).display(); return 0;}
运行结果:
0 0
- 第八周 课后实践:项目一——实现复数类中的运算符重载(3)
- 第八周 课后实践:项目一——实现复数类中的运算符重载(1)
- 第八周 课后实践:项目一——实现复数类中的运算符重载(2)
- 第八周上机实践项目——实现复数类中的运算符重载(3)
- 第九周 课后实践:项目一——复数类中的运算符重载(续)
- 第八周(项目一)——实现复数类中的运算符重载(3)。
- 第八周项目一——实现复数类中的运算符重载(3)
- 第八周上机实践项目——实现复数类中的运算符重载(2)
- 第八周(项目一)——实现复数类中的运算符重载(1)。
- 第八周(项目一)——实现复数类中的运算符重载(2)。
- 第八周项目一——实现复数类中的运算符重载(1)
- 第八周项目一——实现复数类中的运算符重载(2)
- 第八周上机实践项目1——实现复数类中的运算符重载(3)
- 第八周 项目一(3):实现复数类中的运算符重载(扩充类)
- 第八周项目一任务1——实现复数类中的运算符重载
- 第八周项目一任务三——实现复数类中的运算符重载
- 第八周 项目一 (3) 实现复数类中的运算符重载 完整的类
- 第八周 项目一 实现复数类中的运算符重载(3)
- java枚举类型enum的使用实例
- phpqrcode 生成图片显示问题
- 第8周项目1-实现复数类中的运算符重载
- 微软SQLHelper.cs类 中文版
- 常用方法
- 第八周 课后实践:项目一——实现复数类中的运算符重载(3)
- 第八周项目1-2:实现复数类中的运算符重载-友元函数
- Android USER 版本与ENG 版本的差异--MTK官方解释
- Wellner 1993快速自适应的图像二值化方法的提高 (Derek Bradley and Gerhard Roth 2007)
- 【日常小记】linux中强大且常用命令:find、grep
- jqueryui实现百度推荐搜索功能
- OpenCV OTSU大津法
- Objective-C 学习四 Protocal 与 Category
- C语言笔记之条件编译