第十二周项目一-实现复数类中的运算符重载(2)
来源:互联网 发布:淘宝密码忘了无法显示 编辑:程序博客网 时间:2024/05/17 02:47
/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All rights reserved *文件名称:123.cpp *作 者:王蕊 *完成日期:2016年5月15日 *版 本 号:v1.0 * *问题描述:请用类的友元函数,而不是成员函数,再次完成上面提及的运算符的重载。*/#include <iostream>using namespace std;class Complex{public: friend Complex operator+(Complex &c1, Complex &c2); friend Complex operator-(Complex &c1, Complex &c2); friend Complex operator*(Complex &c1, Complex &c2); friend Complex operator/(Complex &c1, Complex &c2); Complex() { real=0.0; imag=0.0; } Complex(double r,double i) { real=r; imag=i; } void display();private: double real; double imag;};Complex operator+(Complex &c1, Complex &c2) //复数相加{ Complex c; c.real=c1.real+c2.real; c.imag=c1.imag+c2.imag; return c;}Complex operator-(Complex &c1, Complex &c2) //复数相减{ Complex c; c.real=c1.real-c2.real; c.imag=c1.imag-c2.imag; return c;}Complex operator*(Complex &c1, Complex &c2) //复数相乘:(a+bi)(c+di)=(ac-bd)+(bc+ad)i.{ 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/(Complex &c1, Complex &c2) //复数相除:(a+bi)/(c+di)=(ac+bd)/(c^2+d^2) +(bc-ad)/(c^2+d^2)i。{ 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;}void Complex::display(){ cout<<"("<<real<<","<<imag<<"i)"<<endl;}int main(){ Complex c1(3,4),c2(5,-10),c3; 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(); return 0;}
运行结果:
0 0
- 第十二周项目一-实现复数类中的运算符重载(2)
- 第十二周项目一(2)-实现复数类中的运算符重载
- 第十二周项目一实现复数中的运算符重载
- 第十二周项目一-实现复数类中的运算符重载(1)
- 第十二周项目一-实现复数类中的运算符重载(3)
- 第十二周项目一实现复数类中的运算符重载(1)
- 第十二周项目一(1)-实现复数类中的运算符重载
- 第十二周项目一(3)-实现复数类中的运算符重载
- 第十二周项目一实现复数类中的运算重载(2)
- 第十二周上机实践项目-项目1-(2)-实现复数类中的运算符重载
- 第十二周项目1-实现复数类中的运算符重载(2)
- 第十二周上机实践项目1(2):实现复数类中的运算符重载
- 第十二周项目1-实现复数类中的运算符重载(2)
- 第十二周上机实践项目 项目1-实现复数类中的运算符重载 (2)
- 第十二周项目2:实现复数类中的运算符重载(2)
- 第十二周项目2:实现复数类中的运算符重载(1)
- 第十二周项目2:实现复数类中的运算符重载(3)
- 第十二周项目1-实现复数类中的运算符重载——2
- Linux和windows下安装redis
- UBUNTU中搭建 APACHE2 + PHP7 + MONGODB + REDIS
- iYMS系统
- (OK) NS3—NS-3—manet-2015.cc
- Fragment(二)
- 第十二周项目一-实现复数类中的运算符重载(2)
- CMD常用命令
- bitset用法
- Nodejs 内容
- POJ2031
- CodeForces 55B Smallest number(DFS)
- iOS开发(OC)——手机号码,邮箱,网址等正则表达式的实现
- Git学习 -- 远程操作遇到error: failed to push some refs to问题解决方法
- [剑指offer]扑克牌顺子