项目一。运算符重载
来源:互联网 发布:淘宝客加入条件 编辑:程序博客网 时间:2024/05/21 08:46
程序:
/**(1)再定义一目运算符 -,-c相当于0-c。*(2)定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然。*/#include <iostream>using namespace std;class Complex{public: Complex operator+(Complex &c2); Complex operator-(Complex &c2); Complex operator*(Complex &c2); Complex operator/(Complex &c2); friend Complex operator-(Complex &c2); friend ostream&operator<<(ostream&,Complex&); friend istream&operator>>(istream&,Complex&);private: double real; double imag;};//下面定义成员函数ostream&operator<<(ostream&output,Complex&c){ if(c.imag>=0) { output<<"("<<c.real<<"+"<<c.imag<<"i)"<<endl; } else { output<<"("<<c.real<<c.imag<<"i)"<<endl; } return output;//返回ostream类的对象}istream&operator>>(istream&input,Complex&c){ int a,b; char sign,i; do { input>>a>>sign>>b>>i; } while(!((sign=='+'||sign=='-')&&i=='i')); if(sign=='-') { b=-b; } c.real=a; c.imag=b; return input;//返回istream类的对象}Complex Complex::operator+(Complex &c2){ Complex c; c.real=real+c2.real; c.imag=imag+c2.imag; return c;}Complex Complex::operator-(Complex &c2){ Complex c; c.real=real-c2.real; c.imag=imag-c2.imag; return c;}Complex Complex::operator*(Complex &c2){ Complex c; c.real=real*c2.real-imag*c2.imag; c.imag=c2.real*imag+real*c2.imag; return c;}Complex Complex::operator/(Complex &c2){ Complex c; c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag); c.imag=(c2.real*imag-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag); return c;}Complex operator-(Complex &c2){ Complex c; c.imag=-c2.imag; c.real=-c2.real; return c;}//下面定义用于测试的main()函数int main(){ Complex c1,c2,c3; cout<<"please input real part and imaginary part of two complex numbers(3+4i) or (3-4i):"<<endl; cin>>c1>>c2; cout<<"c1="<<c1<<endl; cout<<"c2="<<c2<<endl; c3=c1+c2; cout<<"c1+c2="<<c3; c3=c1-c2; cout<<"c1-c2="<<c3; c3=c1*c2; cout<<"c1*c2="<<c3; c3=c1/c2; cout<<"c1/c2="<<c3; c3=-c2; cout<<"-c2="<<c3; return 0;}
结果:
体会:小体会了一把运算符重载
0 0
- 项目一。运算符重载
- 项目一。运算符重载
- 第九周-项目一运算符重载
- 第八周项目一 运算符重载
- 重载运算符一
- 运算符重载(一)
- 运算符重载(一)
- 运算符重载一
- 运算符重载一
- x项目一成员函数完成运算符的重载、
- 项目一(实现复数类中的运算符重载)
- 第八周 项目一复数类运算重载符
- 第九周项目一----实现复数类运算符重载
- 第八周项目一-复数类的运算符重载
- 第八周项目一——运算符重载
- 项目一(2)。友元,运算符重载
- 项目一运算符重载《和》的体验
- 2014-第九周项目一----<<,>>的运算符重载
- Qt5 串口 usb
- 大数据:应用于计量学的新技巧 - 简介以及第一章 用来处理大数据的工具
- 大数据:应用于计量学的新技巧 - 第二章 用来分析大数据的工具
- 大数据:应用于计量学的新技巧 - 第三章 一般为预测需要做的考量
- Codechef Nuclear Reactors 题解
- 项目一。运算符重载
- apue和unp的学习之旅10——基本udp套接字编程
- 项目二。
- iosLearningDiary__CrashDiary
- 安卓文件位置
- ubuntu nginx安装及相关linux性能参数优化
- bitset
- codechef Cleaning Up 题解
- 项目三。