搭建一个货币的场景,创建一个名为 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 { private: int yuan; int jiao; int fen; static int count; public: RMB(int yuan ,int jiao ,int fen ):yuan(yuan),jiao(jiao),fen(fen) { count++; number = count; cout << "count = " << count << endl; } ~RMB() { count--; cout << "count = " << count << endl; } const RMB operator+(const RMB &R)const { RMB opt; opt.yuan = yuan + R.yuan; opt.jiao = jiao + R.jiao; opt.fen = fen + R.fen; return opt; } const RMB operator-(const RMB &R)const { RMB opt; opt.yuan = yuan - R.yuan; opt.jiao = jiao - R.jiao; opt.fen = fen - R.fen; return opt; } bool operator>(const RMB &R)const { if(yuan > R.yuan) return true; else if(yuan == R.yuan) { if(jiao > R.jiao) return true; else if(jiao == R.jiao && fen > R.fen) return true; else return false; } else return false; } bool operator==(const RMB &R)const { if(yuan == R.yuan && fen == R.fen && jiao == R.jiao) return true; else return false; } bool operator<(const RMB &R)const { if(*this > R || *this == R) return false; else return true; } RMB &operator--() { if(yuan > 0) --yuan; if(jiao > 0) --jiao; if(fen > 0) --fen; return *this; } const RMB operator--(int) { RMB opt; if(yuan > 0) opt.yuan = yuan--; if(jiao > 0) opt.jiao = jiao--; if(fen > 0) opt.fen = fen--; return opt; } void show() { cout << *this; } }; int main() { //测试数据 RMB r1(1,10,100); RMB r2; r1.show(); cout << "输入元角分"<<endl; cin >> r2; r1.show(); r2.show(); if(r1 > r2) cout << "r1 > r2" << endl; else if(r1 == r2) cout << "r1 = r2" << endl; else if(r1 < r2) cout << "r1 < r2" << endl; cout << --r1 <<endl; cout << r1-- <<endl; r1.show(); return 0; }
的功能。
c++day5
于 2024-06-11 00:10:37 首次发布