第九周项目一:复数类中的运算符重载(续)
来源:互联网 发布:淘宝怎么改宝贝类目 编辑:程序博客网 时间:2024/06/07 00:24
问题及代码:
在复数类中的运算符重载基础上
(1)再定义一目运算符 -,-c相当于0-c。
(2)定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然。
解决代码:
#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); Complex operator-(); friend ostream& operator << (ostream&,const Complex&); friend istream& operator >> (istream&,Complex&);private: double real; double imag;};//下面定义成员函数//复数相加: (a+bi)+(c+di)=(a+c)+(b+d)i.ostream& operator << (ostream& output,const Complex& c){ output<<"("<<c.real<<","<<c.imag<<"i)"; return output;}istream& operator >> (istream& input,Complex& c){ cout<<"please input real part and imaginary part:"; input>>c.real>>c.imag; return input;}Complex Complex::operator+(const Complex &c2){ Complex c; c.real=real+c2.real; c.imag=imag+c2.imag; return c;}//复数相减:(a+bi)-(c+di)=(a-c)+(b-d)i.Complex Complex::operator-(const Complex &c2){ Complex c; c.real=real-c2.real; c.imag=imag-c2.imag; return c;}//复数相乘:(a+bi)(c+di)=(ac-bd)+(bc+ad)i.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;}//复数相除:(a+bi)/(c+di)=(ac+bd)/(c^2+d^2) +(bc-ad)/(c^2+d^2)iComplex 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;}int main(){ Complex c1,c2,c3; cin>>c1>>c2; cout<<"c1="<<c1<<endl; cout<<"c2="<<c2<<endl; c3=c1+c2; cout<<"c1+c2="<<c3<<endl; c3=c1-c2; cout<<"c1-c2="<<c3<<endl; c3=c1*c2; cout<<"c1*c2="<<c3<<endl; c3=c1/c2; cout<<"c1/c2="<<c3<<endl; return 0;}
运行结果:
学习心得:运用到了重载单目运算符,还有流插入运算符和流提取运算符,感觉重载了流插入运算符和流提取运算符后程序更加简明清晰了!
0 0
- 第九周项目一复数类中的运算符重载(续)(1)
- 第九周项目一复数类中的运算符重载(续)(2)
- 第九周 项目一:复数类中的运算符重载(续)
- 第九周项目一: 复数类中的运算符重载(续)
- 第九周项目一——复数类中的运算符重载(续)
- 第九周 项目一-复数类中的运算符重载(续)
- 15第九周项目一——复数类中的运算符重载(续)
- 第九周项目一--复数类中的运算符重载(续)
- 第九周 课后实践:项目一——复数类中的运算符重载(续)
- 第九周项目一 复数类中的运算符重载(续)
- 第九周项目一:复数类中的运算符重载(续)
- 2014年第九周项目一:复数类中的运算符重载(续)
- 2015年第九周项目一:复数类中的运算符重载(续)(2)
- 第九周 项目一 复数类中的运算符重载(续)
- 第九周项目一复数类中的运算符重载(续)
- 第九周项目一-复数类的中的运算符重载(续)
- 第九周项目一 复数类中的运算符重载(续)
- 第九周 项目一 复数类中的运算符重载(续)
- leetcode-205 Isomorphic Strings
- Android 多个APK数据共享
- hdu 1208(记忆化搜索)
- java核心技术之折半查找算法
- Android学习第一天--搭建开发环境
- 第九周项目一:复数类中的运算符重载(续)
- 第一次写博客
- leetcode记录——Count and Say
- 字符串匹配的KMP算法
- Leetcode: Transpose File
- 你的业务逻辑层是否是被架空了?(一)
- 《暗时间》读书笔记与读后感
- 关于StatusBar的显示流
- C语言输出DEBUG调试信息的方法