设计复数类Complex,实现运算符重载。
设计复数类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,实现运算符重载。相关推荐
- 实现复数类中的运算符重载(含有double类型)
/* * 作 者: 霍雨佳 * 完成日期:2014 年4月15日 * 版 本 号:v1.0 * 问题描述:实现复数类中的运算符重载. * 样例输入: * 样例输出: * 问题分析:一个定义完整的类,是 ...
- 第十二周上机实践项目 项目1-实现复数类中的运算符重载 (2)
问题及代码: [项目-实现复数类中的运算符重载] (1)请用类的成员函数,定义复数类重载运算符+.-.*./,使之能用于复数的加减乘除 class Complex { public:Complex() ...
- 第7周-项目1-完整实现复数类中的运算符重载-扩展+、-、*、/运算符的功能
问题及代码: /* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:number.cpp *作 者:单昕昕 *完成日期:20 ...
- 第十二周-实现复数类中的运算符重载
/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作 者:李德彪 *完成时间:2016年5月23日 * ...
- c++第八周【任务1-3】实现复数类中的运算符重载
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: * 作 者: ...
- c++第八周【任务1-2】实现复数类中的运算符重载
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: c++第八周 ...
- c++第八周【任务1-1】实现复数类中的运算符重载
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: c++第八周 ...
- 设计复数类 Complex继承于数字类 Number,私有成员变量包括 double类型的实部rea(父类 Number中已定义)和虚部imag,公有成员方法包括两个构造方法(一个不带参数的和一个带两
设计复数类 Complex继承于数字类 Number,私有成员变量包括 double类型的实部rea(父类 Number中已定义)和虚部imag,公有成员方法包括两个构造方法(一个不带参数的和一个 ...
- 第十二周项目一-实现复数类中的运算符重载(2)
/**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年5月15日*版 本 号:v1. ...
最新文章
- Mysqli的批量CRUD数据
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
- matlab treeview,treeview控件
- mybatis 默认参数名#{0}、#{arg0}、#{param1},以及@Param
- 关于CompletableFuture的一切,看这篇文章就够了
- 结构体变量和结构体指针变量作为函数参数传递问题
- java实现磁盘分配显示_Java实现窗体动态加载磁盘文件
- Tomcat下使用Log4j 接管 catalina.out 日志文件生成方式
- 【SQL】去除表中的重复行
- 需求不容易确定的项目不要接
- MFC MessageBox使用教程
- axure iphone8元件库_Axure中移动端原型设计方法(附IPhoneX和IPhone8最新模板)
- 软件測试自学指南---从入门到精通
- CDA Level I 模拟题(1)【附答案解析】
- 【涨知识】你家用的是A级锁还是B级锁,什么锁最安全?
- C++获取成员变量的偏移地址
- 【计算机网络】—什么是蜂窝移动网络?
- 喵 ~ 小程序搭建记录
- 解决curl/wget: (7) Failed to connect to github.com port 443: Connection refused无法解析主机或请求拒绝问题
- 软件测试有效性指标,评价软件测试的有效性
热门文章
- 海绵蛋糕——来至于完美戚风的化身
- UVM实战 卷I学习笔记10——UVM中的寄存器模型(3)
- UMS512(T)平台最大支持的RAM和ROM是多少?
- 树莓派 EC20 mini pcie 开机自动拨号
- 南师大计算机语言学,科学网—南京师范大学语言学及应用语言学专业简介及报考指南(2018)更新中 - 李斌的博文...
- 【转】关于Alipay支付宝接口(Java版)
- Remix编辑器连接本地(最新)
- Python入门系列(十一)一篇搞定python操作MySQL数据库
- 百度云盘BT服务器,百度网盘磁链、BT离线停用,官方称服务器优化,非永久下线...
- 计算机更改设置打不开了,更改适配器设置打不开,显示适配器