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

思维导图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/25305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【职业思考】程序员应该有什么职业素养?

程序员作为技术领域的专业人员&#xff0c;除了需要具备扎实的技术能力外&#xff0c;还应具备以下职业素养&#xff1a; 持续学习&#xff1a;技术领域日新月异&#xff0c;程序员需要不断学习新的编程语言、框架、工具和最佳实践&#xff0c;以保持自己的技能与时俱进。 问题…

2024年电子工程与自动化技术国际会议(ICEEAT 2024)

2024 International Conference on Electronic Engineering and Automation Technology 【1】大会信息 会议简称&#xff1a;ICEEAT 2024 大会地点&#xff1a;中国西安 审稿通知&#xff1a;投稿后2-3日内通知 【2】会议简介 2024年电子工程与自动化技术国际会议是聚焦电子…

OrangePi AIpro小试牛刀-目标检测(YoloV5s)

非常高兴参加本次香橙派AI Pro&#xff0c;香橙派联合华为昇腾打造的一款AI推理开发板评测活动&#xff0c;以前使用树莓派Raspberry Pi4B 8G版本&#xff0c;这次有幸使用国产嵌入式开发板。 一窥芳容 这款开发板搭载的芯片是和华为昇腾的Atlas 200I DK A2同款的处理器&#…

Vue3中的常见组件通信之$attrs

Vue3中的常见组件通信之$attrs 概述 ​ 在vue3中常见的组件通信有props、mitt、v-model、 r e f s 、 refs、 refs、parent、provide、inject、pinia、slot等。不同的组件关系用不同的传递方式。常见的撘配形式如下表所示。 组件关系传递方式父传子1. props2. v-model3. $re…

[Linux]内网穿透nps

文章目录 基础文件下载项目地址下载地址 客户端安装解压文件客户端启动客户端注册到linux系统服务客户端注册到windows系统服务windows bat 一键管理员注册windows bat 一键管理员取消 基础文件下载 项目地址 https://github.com/ehang-io/nps 下载地址 Releases ehang-io…

微服务第二轮

学习文档 背景 由于每个微服务都有不同的地址或端口&#xff0c;入口不同 请求不同数据时要访问不同的入口&#xff0c;需要维护多个入口地址&#xff0c;麻烦 前端无法调用nacos&#xff0c;无法实时更新服务列表 单体架构时我们只需要完成一次用户登录、身份校验&#xff…

想在VBA软件中做个登录验证会员授权,用什么云服务器好?

想在VBA中做个登录验证会员授权&#xff0c;用什么服务器好&#xff1f; 腾讯云99起&#xff0c;百度云50元起&#xff0c;不过也不知道到底是一整个虚拟机服务器&#xff0c; 装了WIN2012系统的&#xff0c;还是只是一个虚拟网站只给你一个文件夹可以上传PHP,ASP网页后台。 价…

多维vector定义

多维vector定义 CSP 考试需要定义多维矩阵&#xff0c;我发现我不会定义和初始化&#xff0c;遭罪了。 1. 定义一个 n 维 vector vector<int>a(n, 0) 相当于 int a[n] {0} 2. 定义一个 a * b * c 维度的vector vector<vector<vector<int>>> x(a, ve…

【运维】如何更换Ubuntu默认的Python版本,update-alternatives如何使用

update-alternatives 是一个在 Debian 及其衍生发行版中&#xff08;包括 Ubuntu&#xff09;用于管理系统中可替代项的命令。它可以用于在系统中设置默认的软件版本&#xff0c;例如在不同版本的软件之间进行切换&#xff0c;比如不同的 Python 版本。 要在 Ubuntu 中使用 up…

贪心算法 之 股票 跳跃游戏1and2

第一题&#xff1a; 给你一个整数数组 prices &#xff0c;其中 prices[i] 表示某支股票第 i 天的价格。 在每一天&#xff0c;你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买&#xff0c;然后在 同一天 出售。 返回 你能获得的 最…

6、组件通信详解(父子、兄弟、祖孙)

一、父传子 1、props 用法&#xff1a; &#xff08;1&#xff09;父组件用 props绑定数据&#xff0c;表示为 v-bind:props"数据" &#xff08;v-bind:简写为 : &#xff0c;props可以任意命名&#xff09; &#xff08;2&#xff09;子组件用 defineProps([props&…

Java 编译报错:找不到符号? 手把手教你排查解决!

Java 编译报错&#xff1a;找不到符号&#xff1f; 手把手教你排查解决&#xff01; 在 Java 开发过程中&#xff0c;我们经常会遇到编译器抛出 "找不到符号" 错误。这个错误提示意味着编译器无法在它所理解的范围内找到你所引用的类、变量或方法。这篇文章将带你一步…

一文学习yolov5 实例分割:从训练到部署

一文学习yolov5 实例分割&#xff1a;从训练到部署 1.模型介绍1.1 YOLOv5结构1.2 YOLOv5 推理时间 2.构建数据集2.1 使用labelme标注数据集2.2 生成coco格式label2.3 coco格式转yolo格式 3.训练3.1 整理数据集3.2 修改配置文件3.3 执行代码进行训练 4.使用OpenCV进行c部署参考文…

手写kNN算法的实现-用欧几里德空间来度量距离

kNN的算法思路&#xff1a;找K个离预测点最近的点&#xff0c;然后让它们进行投票决定预测点的类型。 step 1: kNN存储样本点的特征数据和标签数据step 2: 计算预测点到所有样本点的距离&#xff0c;关于这个距离&#xff0c;我们用欧几里德距离来度量&#xff08;其实还有很多…

苍穹外卖笔记-07-菜品管理-增加、删除、修改、查询分页还有菜品起售或停售状态

菜品管理 1 新增菜品1.1 需求分析与设计1.2 代码开发文件上传新增菜品实现 1.3 功能测试 2 菜品分页查询2.1 需求分析和设计2.2 代码开发设计DTO类设计VO类Controller层Service层Mapper层 2.3 功能测试 3 删除菜品3.1 需求分析和设计3.2 代码开发Controller层Service层Mapper层…

机器学习——卷积神经网络

卷积神经网络CNN 多层感知机MLP的层数足够&#xff0c;理论上可以用其提取出二位特征&#xff0c;但是毕竟复杂&#xff0c;卷积神经网络就可以更合适的来提取高维的特征。 而卷积其实是一种运算 二维离散卷积的公式 可以看成g是一个图像的像素点&#xff0c;f是每个像素点对…

2024前端面试准备4-Vue相关

Vue2.0 1. 双向绑定原理 Vue是采用数据劫持发布订阅模式的方式&#xff0c;通过Object.defienProperty()来劫持各个属性的setter\getter,在数据发送变动时发布消息给订阅者&#xff0c;触发相应的监听回调。主要分为以下几个步骤&#xff1a; observe的数据对象进行递归遍历&a…

正态分布公式

正态分布&#xff08;也称为高斯分布&#xff09;的概率密度函数&#xff08;PDF&#xff09;公式如下&#xff1a; 对于均值为 (\mu) &#xff0c;标准差为 (\sigma) 的正态分布&#xff0c;其概率密度函数为&#xff1a; f ( x ) 1 2 π σ 2 e − ( x − μ ) 2 2 σ 2 f(…

【计网复习】应用层总结(不含HTTP和错题重点解析)

应用层总结&#xff08;不含HTTP和错题重点解析&#xff09; 应用层简介 应用层的主要功能常见的应用层协议小林对于应用层通常的解释 网络应用模型 客户端-服务器模型&#xff08;Client-Server Model, C/S&#xff09; 特点优点缺点应用场景 对等网络模型&#xff08;Peer-to…

算法 | 用贪心求解背包动态规划、回溯、分支限界法求解0-1背包

背包问题 普通背包&#xff1a; 贪心时间复杂度:O(nlogn) 首先计算每种物品单位重量的价值Vi/Wi&#xff0c;然后&#xff0c;依贪心 选择策略&#xff0c;将尽可能多的单位重量价值最高的物品装入背包。若 将这种物品全部装入背包后&#xff0c;背包内的物品总重量未超过C&a…