/**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;
}

运行结果:

第十二周项目一-实现复数类中的运算符重载(2)相关推荐

  1. 第十二周项目一-实现复数类中的运算符重载(1)

    /**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年5月15日*版 本 号:v1. ...

  2. 第十二周项目一-实现复数类中的运算符重载(3)

    /**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年5月15日*版 本 号:v1. ...

  3. 第八周--项目1--实现复数类中的运算符重载

    /* * Copyright (c) 2011, 烟台大学计算机学院 * All rights reserved. * 作 者:王静 * 完成日期:2013 年 4 月 24 日 * 版 本 号:v1 ...

  4. 第十二周上机实践项目 项目1-实现复数类中的运算符重载 (2)

    问题及代码: [项目-实现复数类中的运算符重载] (1)请用类的成员函数,定义复数类重载运算符+.-.*./,使之能用于复数的加减乘除 class Complex { public:Complex() ...

  5. 第十二周-实现复数类中的运算符重载

    /* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作    者:李德彪 *完成时间:2016年5月23日 * ...

  6. 第7周-项目1-完整实现复数类中的运算符重载-扩展+、-、*、/运算符的功能

    问题及代码: /* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:number.cpp *作 者:单昕昕 *完成日期:20 ...

  7. c++第八周【任务1-2】实现复数类中的运算符重载

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: c++第八周 ...

  8. c++第八周【任务1-1】实现复数类中的运算符重载

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: c++第八周 ...

  9. c++第八周【任务1-3】实现复数类中的运算符重载

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: * 作 者: ...

最新文章

  1. R语言ggplot2可视化分面图(facet_wrap)、使用size参数自定义设置分面图标签栏(灰色标签栏)中的标签文本的字体大小
  2. 语言与智能:维特根斯坦框架、人工智能以及共情的出现
  3. 联系 Contact
  4. 【Pytorch神经网络理论篇】 10 优化器模块+退化学习率
  5. 优秀员工和普通员工的十大区别,老板和员工都应该知道
  6. 比较使用LUT和不使用LUT的颜色空间转换的处理时间差异
  7. c语言gets,getc,C语言的getc()函数和gets()函数的使用对比
  8. [Android]Hello, Android!
  9. MCS-51单片机的外部引脚及片外总线
  10. hihocoder 1403 后缀数组一·重复旋律 (后缀数组 + 二分)
  11. datax底层原理_Datax 任务分配原理
  12. Spring BcryptPasswordEncorder Log Rounds参数说明
  13. 云扩科技获ISIG RPA 产品奖
  14. 旧金山大学数据结构和算法的可视化工具
  15. 虚幻4蓝图快速入门(一)
  16. 我的Go+语言初体验——GO+的下载与安装
  17. P1231 教辅的组成
  18. Excel Charting Utility赠品
  19. 这几款办公软件,简直强大到没朋友!
  20. 一键开关Windows Defender V1.6

热门文章

  1. ioca0中断 pic单片机_关于PIC单片机的一些经验总结 -单片机-电子工程世界网
  2. matplotlib 散点图_Python学习 —— matplotlib绘制三维曲线图和三维散点图
  3. ansys怎么合并体_亚马逊合并拆分变体实操(干货)-合并
  4. 业余无线电通信_登山与业余无线电的完美结合,便携式电台参加VHF比赛心得体会...
  5. 一起来学习 WebRTC (篇一)| 掘金技术征文
  6. BZOJ1150[CTSC2007]数据备份Backup——模拟费用流+堆+链表
  7. iOS开发多线程篇—线程安全
  8. webgl之3d动画
  9. Android WebView 支持H5图片上传input type=file
  10. Jrebel6.3.3破解,配置图文教程