第12周项目1实现复数类的运算符重载3
2016-05-26 09:00
253 查看
/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称 : *作 者 : 刘默涵 *完成日期 : 2016年5月26号 *版 本 号 : 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; }
相关文章推荐
- 百度 API 生成短网址自己测试的例子
- 第十三周项目—阅读程序,并运行结果(纯虚函数)
- 深入理解JavaScript系列+ 深入理解javascript之执行上下文
- 第十一周阅读项目(5)
- 猴子吃桃问题
- Random Forest 随机森林
- 基于FS4412嵌入式系统移植(8) linux内核调试之printk
- Java中判断对象是否相等的equals()方法使用教程
- css word-wrap和word-break强制换行
- 我们应该如何去了解JavaScript引擎的工作原理 系列
- HDU4355(三分)
- Chp15 网络编程
- NoSQL数据库概览及其与SQL语法的比较
- 小代码 代码整理
- ssh框架中的basedao
- 2 Add Two Numbers
- Codeforces Round #353 (Div. 2) B.Restoring Painting
- ARC_xp_20160526
- CodeForces 592B
- 求素数问题