设计复数类Complex,实现运算符重载。 要求:
(1)重载运算符“+”和“*”,使之分别能用于复数相加和相乘。(30分)
(2)重载运算符“<<”,使得复数对象能够使用“<<”运算符输出。(15分)

实验思路:重载运算符要用到operator关键字,按照复数的计算方法重新定义运算符。

#include <iostream>
using namespace std;
class Complex{public:Complex(){}                                  //默认构造函数 Complex (int arel,int aimag);               //构造函数Complex (const Complex &c);                 //复制构造函数 ~ Complex ();                               //析构函数Complex operator + (Complex &m);            //重载 + 运算符Complex operator * (Complex &m);            //重载 * 运算符friend ostream &operator << (ostream &out,const Complex &m);    //重载"<<"运算符 int getReal() const {return real;}              //得到复数实部int getImag() const {return imag;}              //得到复数虚部private:int real,imag;                              //复数的实部与虚部
};Complex::Complex (int areal,int aimag):real(areal),imag(aimag){}
Complex::Complex (const Complex &c):real(c.real),imag(c.imag){}
Complex::~Complex (){}
Complex Complex::operator + (Complex &m){int a = this->real+m.real;int b = this->imag+m.imag;return Complex(a,b);
}
Complex Complex::operator * (Complex &m){int a= this->real*m.real+this->imag*m.imag;int b= this->imag*m.real+this->real*m.imag;return Complex(a,b);
}
ostream &operator << (ostream &out,const Complex &m){out << "(" << m.real << "," << m.imag << ")";return out;
}
int main(){Complex c1(5,4),c2(3,10),c3;                    //定义复数类的对象c3 = c1 + c2;cout << "c3" << c3;Complex c4 = c1 * c2 ;cout << "c4" << c4;return 0;
}

设计复数类Complex,实现运算符重载。相关推荐

  1. 实现复数类中的运算符重载(含有double类型)

    /* * 作 者: 霍雨佳 * 完成日期:2014 年4月15日 * 版 本 号:v1.0 * 问题描述:实现复数类中的运算符重载. * 样例输入: * 样例输出: * 问题分析:一个定义完整的类,是 ...

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

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

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

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

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

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

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

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

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

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

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

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

  8. 设计复数类 Complex继承于数字类 Number,私有成员变量包括 double类型的实部rea(父类 Number中已定义)和虚部imag,公有成员方法包括两个构造方法(一个不带参数的和一个带两

    ​ 设计复数类 Complex继承于数字类 Number,私有成员变量包括 double类型的实部rea(父类 Number中已定义)和虚部imag,公有成员方法包括两个构造方法(一个不带参数的和一个 ...

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

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

最新文章

  1. Mysqli的批量CRUD数据
  2. 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
  3. matlab treeview,treeview控件
  4. mybatis 默认参数名#{0}、#{arg0}、#{param1},以及@Param
  5. 关于CompletableFuture的一切,看这篇文章就够了
  6. 结构体变量和结构体指针变量作为函数参数传递问题
  7. java实现磁盘分配显示_Java实现窗体动态加载磁盘文件
  8. Tomcat下使用Log4j 接管 catalina.out 日志文件生成方式
  9. 【SQL】去除表中的重复行
  10. 需求不容易确定的项目不要接
  11. MFC MessageBox使用教程
  12. axure iphone8元件库_Axure中移动端原型设计方法(附IPhoneX和IPhone8最新模板)
  13. 软件測试自学指南---从入门到精通
  14. CDA Level I 模拟题(1)【附答案解析】
  15. 【涨知识】你家用的是A级锁还是B级锁,什么锁最安全?
  16. C++获取成员变量的偏移地址
  17. 【计算机网络】—什么是蜂窝移动网络?
  18. 喵 ~ 小程序搭建记录
  19. 解决curl/wget: (7) Failed to connect to github.com port 443: Connection refused无法解析主机或请求拒绝问题
  20. 软件测试有效性指标,评价软件测试的有效性

热门文章

  1. 海绵蛋糕——来至于完美戚风的化身
  2. UVM实战 卷I学习笔记10——UVM中的寄存器模型(3)
  3. UMS512(T)平台最大支持的RAM和ROM是多少?
  4. 树莓派 EC20 mini pcie 开机自动拨号
  5. 南师大计算机语言学,科学网—南京师范大学语言学及应用语言学专业简介及报考指南(2018)更新中 - 李斌的博文...
  6. 【转】关于Alipay支付宝接口(Java版)
  7. Remix编辑器连接本地(最新)
  8. Python入门系列(十一)一篇搞定python操作MySQL数据库
  9. 百度云盘BT服务器,百度网盘磁链、BT离线停用,官方称服务器优化,非永久下线...
  10. 计算机更改设置打不开了,更改适配器设置打不开,显示适配器