定义一个复数类Complex,重载运算符“+”、“-”、“*”、“/”,使之能用于复数的加、减、乘、除。要求:将“+”和“-”的运算符重载函数作为Complex的成员函数;将“*”和“/” 的运算符重载函数作为友元函数。编写程序,分别求两个复数之和、差、积、商。

提示:若已知c1=a+bi,c2=c+di,则:

c1+c2=(a+c)+(b+d)i

c1-c2=(a-c)+(b-d)i

c1*c2=(ac-bd)+(ad+bc)i

c1/c2=(ac+bd)/(c*c+d*d)+((bc-ad)/( c*c+d*d))i

运行结果参考如下:

下面是代码

#include

using namespace std;

class Complex {

public :

Complex (double x=0,double y=0):real(x),imag(y) {}

friend Complex operator * (Complex &c1,Complex &c2);

friend Complex operator / (Complex &c1,Complex &c2);

Complex operator + (Complex &c2 );

Complex operator - (Complex &c2 );

void display();

private :

double real;

double imag;

};

Complex operator * (Complex &c1,Complex &c2) {

return Complex (c1.real*c2.real-c1.imag*c2.imag,c1.real*c2.imag+c1.imag*c2.real);

}

Complex operator / (Complex &c1,Complex &c2) {

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;

}

Complex Complex ::operator + (Complex &c2) {

return Complex (real+c2.real,imag+c2.imag);

}

Complex Complex ::operator - (Complex &c2) {

return Complex (real-c2.real,imag-c2.imag);

}

void Complex ::display() {

cout<"<

}

int main() {

Complex c1(3,4),c2(5,-10),c3;

c1.display();

c2.display();

c3=c1+c2;

c3.display();

c3=c1-c2;

c3.display();

c3=c1*c2;

c3.display();

c3=c1/c2;

c3.display();

return 0;

}

出现过的问题,

1.

Complex (double x=0,double y=0):real(x),imag(y){}

参数初始化表这里需要对x,y赋初值,不然c3在编译时会报错;

2.

must take either zero or one argument

出现这个问题也困扰了我很久

二元运算符用成员重载时,   只需要一个参数,   另一个参数由this指针传入 (第一个参数由this指针自动传入到函数中去的.)

Complex operator + (Complex &c1,Complex &c2 );

所以这样写是不对的

python运算符重载、并且编写复数类的加减乘除_编程基础篇:定义一个复数类Complex,重载运算符“+,-,*,/”,使之能用于复数的加减乘除.....出现的问题及代码...相关推荐

  1. Java编程题:定义一个Box类,属性有:长,宽,高,并初始化数据

    Java编程题:定义一个Box类,属性有:长,宽,高,并初始化数据 Box类: /*** Java编程题:定义一个Box类,属性有:长,宽,高,并初始化数据*/package Box;public c ...

  2. Python编程基础 第四章 编程练习 请定义一个Circle类,具体要求为:(1)每个Circle类对象可以存储圆心和半径信息;(2)具有设置圆心和半径的方法SetCenter和SetRadius

    题目内容: 请定义一个Circle类,具体要求为:(1)每个Circle类对象可以存储圆心和半径信息:(2)具有设置圆心和半径的方法SetCenter和SetRadius:(3)具有计算圆面积的方法G ...

  3. Python编程基础 第四章 编程练习 请定义一个Cylinder类,具体要求为:(1)每个Cylinder类对象可以存储一个圆柱体;2)具有用于初始化半径和高的构造方法;(3)具有计算圆柱体体积

    题目内容: 请定义一个Cylinder类,具体要求为:(1)每个Cylinder类对象可以存储一个圆柱体(包括半径和高):(2)具有用于初始化半径和高的构造方法:(3)具有计算圆柱体体积的方法GetV ...

  4. 抽象类可以创建对象吗_【基础篇】java-抽象类与继承的补充

    ##抽象类## - 概述 在继承和多态时,讲到了父类的方法多数时候,是要被子类们重写,且各自的实现不尽相同.那么对于父类来说,其方法声明还有用,方法体就没用了,这样在父类中,就只保留方法的声明和空的方 ...

  5. java中file类乱,【JAVA SE基础篇】47.file类的方法

    1.file类的方法 1.getName():获取文件名 2.getPath():获取文件路径,设定是相对路径得到的就是相对路径,绝对路径同里 3.getAbsolutePath():获取文件绝对路径 ...

  6. Java基础篇:一个堆栈类

    尽管Box类在说明一个类的必要的元素时是有用的,但它实际应用的价值并不大.为了显示出类的真实的功能,本章将用一个更复杂的例子来说明类的强大功能. 在Java中,就是通过类这样的机制来完成封装性.在创建 ...

  7. python创建学生类姓名学号_定义一个学生类,包含学号、姓名、平时成绩和考核成绩四个数据成员和以下成员方法(用Python语言):...

    定义一个学生类,包含学号.姓名.平时成绩和考核成绩四个数据成员和以下成员方法(用Python语言):Python实验题目:类与文件实验要求:1.定义类2.定义并使用类对象3.打开和存取文件... 定义 ...

  8. Python学习之旅(核心编程基础篇003运算符)

    Python学习之旅 Python核心编程基础篇2020.12.18 一.算数运算符 二.比较运算符 三.赋值运算符 四.逻辑运算符 五.成员运算符 六.身份运算符 七.三目运算符 八.运算符优先级 ...

  9. 小白对于学习对象和类的总结,定义一个圆柱体类Cylinder,并创建相应的对象,然后计算圆柱体的底面积和面积.

    类和对象 类:类的概念就是让程序设计能更清楚卖出日常生活中的事物,也可以理解为对一类事物的统称包含对于属性描述和行为描述!注解:属性描述:描述当前类有哪些属性.行为描述:描述当前有哪些行为.举例: 以 ...

  10. 定义一个Employee类,排序

    <用java编程>:定义一个Employee类,属性name:String:age:int:salary:double:把若干Employee对象放入List中,排序并遍历:排序规则:sa ...

最新文章

  1. 栈与队列6——生成最大窗口值数组
  2. Microsoft Exchange 2010 SP1 (一)安装准备
  3. STM32 内存管理实验
  4. eeglab中文教程系列(9)-绘制ERP图像
  5. Linq Coding -- Part Three [Let子句]
  6. 创业维艰,但我未曾放弃——一位90后创业者的自白
  7. BUUCTF(pwn) ciscn_2019_s_3 [ 栈溢出SROP攻击]
  8. poj 2187 Beauty Contest
  9. Couldn't find leader offsets for Set([smt,0], [smt,1], [smt,2])
  10. 没有为此文件配置应用程序上下文_如何在macOS中管理文件关联?
  11. python编程是啥-Python编程语言的特点是什么?老男孩Python学习
  12. kafka offset入门理解
  13. linux下configure命令详细介绍[转]
  14. hsf端口_分布式服务框架HSF
  15. word柱状图垂直轴数值设定_EXCEL中的图表坐标轴数值 如何设置
  16. 台达plc ec3程序下载通讯设置_【台达PLC】入门这样学!基础详解!
  17. STM32+华为云IOT设计的动态密码锁
  18. 警告: Category is implementing a method which will also be implemented by its primary class
  19. 谷歌浏览器Chrome播放rtsp实时视频,并抓图、录像、回放、倍速等
  20. 盘点PS使用小技巧。

热门文章

  1. 以漫画的形式描述联邦学习
  2. php 文字动画,CSS3绘制2018新年快乐文字动画特效
  3. JAVA中dot的用法_doT学习(一)之语法
  4. Microsemi Libero使用技巧7——离线安装IP Core
  5. 求关系模式的候选码的方法
  6. 三级等保 关闭111端口
  7. 1039:判断数正负(测试已通过)
  8. Android面试题4
  9. 2013年全国计算机一级上机,2013年全国高校计算机联合考试一级机试试题(1)
  10. 用Pytorch自建6层神经网络训练Fashion-MNIST数据集,测试准确率达到 92%