当前位置: 首页 > news >正文

6月7号作业

1,

搭建一个货币的场景,创建一个名为 RMB 的类,该类具有整型私有成员变量 yuan(元)、jiao(角)和 fen(分),并且具有以下功能:

(1)重载算术运算符 + 和 -,使得可以对两个 RMB 对象进行加法和减法运算,并返回一个新的 RMB 对象作为结果。

(2)重载关系运算符 >,判断一个 RMB 对象是否大于另一个 RMB 对象,并返回 true 或 false。

(3)重载前置减减运算符 --,使得每次调用时 RMB 对象的 yuan、jiao 和 fen 分别减 1

(4)重载后置减减运算符 --,使得每次调用时 RMB 对象的 yuan、jiao 和 fen 分别减 1

(5)另外, RMB 类还包含一个静态整型成员变量 count,用于记录当前已创建的 RMB 对象的数量。每当创建一个新的 RMB 对象时,count 应该自增 1;每当销毁一个 RMB 对象时,count 应该自减 1。

要求,需要在main 函数中测试上述RMB 类的功能。

#include <iostream>
using namespace std;
//搭建一个货币市场,创建一个类
class RMB
{//全局函数加上友元要在类里面声明;friend const RMB operator+(const RMB &L,const RMB &H);friend const RMB operator-(const RMB &L,const RMB &H);friend bool operator>(const RMB &L,const RMB &H);friend RMB &operator--(RMB &O);friend RMB operator--(RMB &O,int);
private:int first;int angle;int minute;static int count;
public://无参RMB(){//cout << "无参构造" << endl;count++;}//有参RMB(int first,int angle,int minute):first(first),angle(angle),minute(minute){//cout << "有参构造" << endl;count++;}//拷贝构造函数RMB(const RMB &other):first(other.first),angle(other.angle),minute(other.minute){cout << "RMB=浅拷贝构造函数" << endl;count++;}//析构函数~RMB(){//cout << "析构函数" << endl;count--;}//设置一个静态成员函数,获取static int acquirt(){return count;}//输出数据成员void show(){cout << "first元= " << first << endl;cout << "angle角= " << angle << endl;cout << "minute分= " << minute << endl;}};
//全局函数实现+号运算重载
const RMB operator+(const RMB &L,const RMB &H)
{RMB temp;temp.first=L.first+H.first;temp.angle=L.angle+H.angle;temp.minute=L.minute+H.minute;return temp;
}
//全局函数实现-号运算重载
const RMB operator-(const RMB &L,const RMB &H)
{RMB temp;temp.first=L.first-H.first;temp.angle=L.angle-H.angle;temp.minute=L.minute-H.minute;return temp;
}
//全局函数实现关系运算重载
bool operator>(const RMB &L,const RMB &H)
{if(L.first > H.first && L.angle > H.angle && L.minute > H.minute){return true;}else {return false;}
}
//全局前置自减运算
RMB &operator--(RMB &O)
{--O.first;--O.angle;--O.minute;return O;
}
//全局后置自减运算
RMB operator--(RMB &O,int)
{RMB temp;temp.first=O.first--;temp.angle=O.angle--;temp.minute=O.minute--;return temp;
}//静态数据成员初始化
int RMB::count=0;int main()
{//测试数据RMB s1(300,30,3);RMB s2(200,20,2);cout << "<=========================>" << endl;//全局加法运算RMB s3=s1+s2;s3.show();cout << "<=========================>" << endl;//全局减法运算RMB s4=s3-s2;s4.show();cout << "<=========================>" << endl;//全局关系运算重载if(s1>s2){cout << "s1>s2" << endl;}cout << "<=========================>" << endl;//全局前置--运算重载RMB s5(8,8,8);s4=--s5;s5.show();s4.show();cout << "<=========================>" << endl;//全局后置--运算重载s4=s5--;s5.show();s4.show();cout << "静态变量功能测试" << endl;cout << "现存的RMB的对象" << RMB::acquirt() << endl;RMB* s6=new RMB(600,60,6);cout << "现存的RMB的对象" << RMB::acquirt() << endl;delete s6;cout << "现存的RMB的对象" << RMB::acquirt() << endl;return 0;
}

思维导图

相关文章:

  • Redis 双写一致原理篇
  • log4j日志打印导致OOM问题
  • 第十一周:学习总结
  • web前端电影简介标签:深度解析与创意应用
  • 初阶c++入门
  • 视频监控管理平台LntonCVS视频汇聚平台充电桩视频监控应用方案
  • JS笔记(自用)
  • 攻防演练之-动员大会
  • C/C++学习笔记 C语言中的\0以及查找字符串中字符出现的频率
  • Python爬取城市空气质量数据并写入mysql数据库
  • 细说NLP中的Embedding层
  • eclipse怎么导入python项目
  • Qt Designer 生成的 .ui 文件转为 .py 文件并运行
  • 如何在IDEA中用git提交设置忽略文件的方法
  • 《雅思口语真经总纲1.0》笔记——第二章:官方评分标准真经——Lexical Resource 词汇资源——三十个动词词组
  • CEF与代理
  • css属性的继承、初识值、计算值、当前值、应用值
  • Django 博客开发教程 16 - 统计文章阅读量
  • GitUp, 你不可错过的秀外慧中的git工具
  • javascript数组去重/查找/插入/删除
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • Node + FFmpeg 实现Canvas动画导出视频
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • ViewService——一种保证客户端与服务端同步的方法
  • vue总结
  • win10下安装mysql5.7
  • 简析gRPC client 连接管理
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 使用putty远程连接linux
  • 算法之不定期更新(一)(2018-04-12)
  • 赢得Docker挑战最佳实践
  • 终端用户监控:真实用户监控还是模拟监控?
  • 我们雇佣了一只大猴子...
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • ${factoryList }后面有空格不影响
  • (10)ATF MMU转换表
  • (2)空速传感器
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (LLM) 很笨
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (四)事件系统
  • (新)网络工程师考点串讲与真题详解
  • (转)【Hibernate总结系列】使用举例
  • (转)nsfocus-绿盟科技笔试题目
  • (转)Oracle存储过程编写经验和优化措施
  • (转)关于多人操作数据的处理策略
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)