复数运算符重载
2015-06-25 21:56
267 查看
问题及代码:
运行结果:
/*。 *Copyright(c)2014,烟台大学计算机学院 *All right reserved, *文件名:test.cpp *作者:liu_feng_zi_ *完成日期:2015年6月25日 *版本号:v1.0 *问题描述:复数运算符重载(+与<<) *输入描述: *程序输出: */ #include <iostream> #include <iomanip> using namespace std; class Complex { public: Complex():real(0),imag(0) {} Complex(double r,double i):real(r),imag(i) {} Complex operator+(Complex &); Complex operator+(double &); friend Complex operator+(double&,Complex &); friend ostream& operator << (ostream& output, const Complex& c); private: double real; double imag; }; Complex Complex::operator+(Complex &c) { Complex cc; cc.real=real+c.real; cc.imag=imag+c.imag; return cc; } Complex Complex::operator+(double &c) { Complex cc; cc.real=real+c; cc.imag=imag; return cc; } Complex operator+(double&d,Complex &c) { Complex cc; cc.real=c.real+d; cc.imag=c.imag; return cc; } ostream& operator << (ostream& output, const Complex& c) { output<<setiosflags(ios::fixed)<<setprecision(2); output<<"("<<c.real<<((c.imag>0)?"+":"")<<c.imag<<"i)"<<endl; return output; } int main() { //测试复数加复数 double real,imag; cin>>real>>imag; Complex c1(real,imag); cin>>real>>imag; Complex c2(real,imag); Complex c3=c1+c2; cout<<"c1+c2="; cout<<c3; //测试复数加实数 double d; cin>>real>>imag; cin>>d; c3=Complex(real,imag)+d; cout<<"c1+d="; cout<<c3; //测试实数加复数 cin>>d; cin>>real>>imag; c1=Complex(real,imag); c3=d+c1; cout<<"d+c1="; cout<<c3; return 0; }
运行结果:
相关文章推荐
- Encoding
- java线程基础复习
- 安装时提示 INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 解决办法
- Encoding 分类: HDU 2015-06-25 21:56 9人阅读 评论(0) 收藏
- JAVAC不是内部或外部命令
- 局域网找不到其它电脑
- Activity嵌套多个Fragment实现横竖屏切换
- 浅谈移动前端的最佳实践
- 手斧Linux – 从LFS到Funtoo (45)
- 运行hibernate时报错Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntit
- 【无中生有】---11---服务器集群部署
- HDU 2686 Matrix(最大费用流)
- 8.Tomcat 如何启动停止?
- 数据绑定控件之Repeater
- HDOJ 1009
- 玩转Docker镜像
- html5中canvas中绘制渐变和绘制文字顺序问题
- 实现顺序栈
- 手斧Linux – 从LFS到Funtoo (44)
- 黑马程序员——Java基础--多态