思维导图:
代码:
#include <iostream>using namespace std;//声明RMB类
class Rmb{
private://声明RMB类中的成员变量int yuan;int jiao;int fen;static int count;
public://RMB类的无参构造方法Rmb(){//cout << "Rmb::无参构造函数" << endl;countAdd();}//RMB类的有参构造方法Rmb(int yuan, int jiao, int fen):yuan(yuan), jiao(jiao), fen(fen){//cout << "Rmb::有参构造函数" << endl;countAdd();}//显示对象信息的函数void show(){cout << "金额为:" << yuan << "元" << jiao << "角" << fen << "分" << endl;}//count自增函数static void countAdd(){count++;}//创建函数实现获取count值的功能static int getCount(){return count;}//重载加法运算符,实现两个对象对应成员相加const Rmb operator+(const Rmb &r)const{Rmb t;t.yuan = yuan + r.yuan;t.jiao = jiao + r.jiao;t.fen = fen + r.fen;return t;}//重载减法运算符,实现两个对象对应成员相减const Rmb operator-(const Rmb &r)const{Rmb t;t.yuan = yuan - r.yuan;t.jiao = jiao - r.jiao;t.fen = fen - r.fen;return t;}//成员函数实现前--运算符重载Rmb &operator--(){--yuan;--jiao;--fen;return *this;}//成员函数实现后--运算符重载const Rmb operator--(int){Rmb t;t.yuan = yuan--;t.jiao = jiao--;t.fen = fen--;return t;}
};int Rmb::count = 0;
int main()
{Rmb r1(1000, 5, 3);r1.show();Rmb r2;r2 = r1--;Rmb r3 = --r1;r2.show();r3.show();Rmb r4 = r1 + r2;Rmb r5 = r2 - r1;r4.show();r5.show();cout << "有" << r1.getCount() << "个对象" << endl;return 0;
}
运行结果: