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

C++ 5

搭建一个货币的场景,创建一个名为 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。

#include <iostream>using namespace std;class RMB
{
private:int yuan;int jiao;int fen;static int count;
public:RMB(){count++;}RMB(int yuan, int jiao, int fen):yuan(yuan), jiao(jiao), fen(fen){count++;}//加法const RMB operator+(const RMB &R){RMB temp;temp.yuan = yuan + R.yuan;temp.jiao = jiao + R.jiao;temp.fen = fen + R.fen;return temp;}//减法const RMB operator-(const RMB &R){RMB temp;temp.yuan = yuan - R.yuan;temp.jiao = jiao - R.jiao;temp.fen = fen - R.fen;return temp;}//大于bool operator>(const RMB &R){if(yuan+0.1*jiao+0.01*fen > R.yuan+0.1*R.jiao+0.01*R.fen)return true;elsereturn false;}//前置减减const RMB &operator--(){--yuan;--jiao;--fen;return *this;}//后置减减const RMB operator--(int){RMB temp;temp.yuan = yuan--;temp.jiao = jiao--;temp.fen = fen--;return temp;}static void get_count(){cout << "count=" << count << endl;}void show(){cout << yuan << " " << jiao << " " << fen << endl;}~RMB(){count--;}};int RMB::count = 0;int main()
{RMB s1(1, 1, 1);RMB s2(10, 10, 10);RMB s3(100, 100, 100);cout << "s1= ";s1.show();cout << "s2= ";s2.show();cout << "s3= ";s3.show();RMB::get_count();cout << "======重载算术运算符+==============" << endl;RMB s4 = s1+s2;cout << "s4=s1+s2: ";s4.show();cout << endl;cout << "======重载算术运算符-==============" << endl;RMB s5 = s2-s1;cout << "s5=s2-s1: ";s5.show();cout << endl;cout << "======重载算术运算符>==============" << endl;if(s2>s1){cout << "s2>s1" << endl;}cout << endl;cout << "======重载前置减减运算符--==============" << endl;--s3;cout << "--s3= ";s3.show();cout << endl;cout << "======重载后置减减运算符--==============" << endl;RMB s6;s6 = s3--;cout << "s6=s3--: ";s6.show();cout << "s3= ";s3.show();cout << endl;cout << "======当前已创建的RMB对象的数量==============" << endl;RMB::get_count();RMB *s7 = new RMB{2,2,2};RMB::get_count();delete(s7);RMB::get_count();return 0;
}


文章转载自:

http://OAYg5Vb1.bgbnc.cn
http://Vz2USsUB.bgbnc.cn
http://x50pUnl0.bgbnc.cn
http://5r47691f.bgbnc.cn
http://33x9KYLs.bgbnc.cn
http://0iZrupry.bgbnc.cn
http://pJ3ebdhh.bgbnc.cn
http://sewfqvEO.bgbnc.cn
http://PfgknJbW.bgbnc.cn
http://j1OuMQL3.bgbnc.cn
http://teoGJLfj.bgbnc.cn
http://xhPg8sB8.bgbnc.cn
http://s2zbIEOX.bgbnc.cn
http://X4oAcnTA.bgbnc.cn
http://lKGsq0Qs.bgbnc.cn
http://T6k5Vy0E.bgbnc.cn
http://6oLmQl1g.bgbnc.cn
http://dzNt7xrw.bgbnc.cn
http://KWXXCjrr.bgbnc.cn
http://yu8dd80I.bgbnc.cn
http://fDZGmmL4.bgbnc.cn
http://ZkEIy7JL.bgbnc.cn
http://Za4E0f6L.bgbnc.cn
http://vPz24fBi.bgbnc.cn
http://QieFXjM4.bgbnc.cn
http://mw1BnXL4.bgbnc.cn
http://apqvcgRM.bgbnc.cn
http://WCwZqlC3.bgbnc.cn
http://3jU6eGGF.bgbnc.cn
http://abQ2vjTz.bgbnc.cn
http://www.dtcms.com/a/366052.html

相关文章:

  • 硬件基础与c51基础
  • 【Linux】分离线程
  • 如何下载免费的vmware workstation pro 17版本?
  • 小游戏公司接单难?这几点原因与破局思路值得看看
  • Pytorch笔记一之 cpu模型保存、加载与推理
  • AI隐私保护:当大模型遇上“隐身术”——差分隐私+同态加密,让模型“看不见原始数据”
  • LoRA微调分词器 应用模板(75)
  • test命令与参数
  • Python基础(⑧APScheduler任务调度框架)
  • 数据结构从青铜到王者第十九话---Map和Set(2)
  • git之分支
  • 如何创建交换空间
  • 【音视频】视频秒播优化实践
  • 无穿戴动捕如何深度结合AI数据分析,实现精准动作评估?
  • 代码随想录刷题Day48
  • Linux 字符设备驱动框架学习记录(三)
  • 数学建模-非线性规划(NLP)
  • STM32HAL 快速入门(十七):UART 硬件结构 —— 从寄存器到数据收发流程
  • DOM常见的操作有哪些?
  • Day34 UDP套接字编程 可靠文件传输与实时双向聊天系统
  • 信号调制与解调 matlab仿真
  • 异常处理机制与debug
  • 复写零(双指针)
  • 单片机day2
  • 配置时钟分频与倍频
  • 解构复杂财务逆向业务:如何优雅地生成与管理负数单?
  • Python基础(⑥属性装饰器)
  • 你只需输入一句话,MoneyPrinterTurbo直接给你输出一个视频
  • 普通人如何用 AI 提效?5 个低门槛工具 + 3 类场景案例,让 AI 成为日常助手
  • phpstorm 操作git 另外的操作在 我的收藏