例题
- #include
- 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) const
- {
- 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) const
- {
- RMB temp;
- temp.yuan = yuan - R.yuan;
- temp.jiao = jiao - R.jiao;
- temp.fen = fen - R.fen;
- return temp;
- }
- bool operator>(const RMB &R) const
- {
- if (yuan > R.yuan)
- {
- if (jiao > R.jiao)
- {
- if (fen > R.fen)
- {
- return true;
- }
- return true;
- }
- return true;
- }
- else
- {
- return false;
- }
- }
- RMB &operator--()
- {
- --yuan;
- --jiao;
- --fen;
- return *this;
- }
- RMB &operator--(int)
- {
- RMB temp;
- temp.yuan = yuan--;
- temp.jiao = jiao--;
- temp.fen = fen--;
- return *this;
- }
- void show()
- {
- cout << yuan << "元\t" << jiao << "角\t" << fen << "分" << endl;
- }
- static int getCount()
- {
- return count;
- }
- ~RMB()
- {
- count--;
- }
- };
- int RMB::count = 0;
- int main(int argc, char const *argv[])
- {
- cout << "现在的RMB对象数量为:" << RMB::getCount() << endl;
- RMB r1(5, 5, 1);
- cout << "现在的RMB对象数量为:" << RMB::getCount() << endl;
- RMB r2(5, 9, 5);
- cout << "现在的RMB对象数量为:" << RMB::getCount() << endl;
- RMB r3 = r1 + r2;
- r3.show();
- RMB r4 = r1 - r2;
- r4.show();
-
- if (r1 > r2)
- {
- cout << "yes" << endl;
- }
- else
- {
- cout << "no" << endl;
- }
-
- r1--;
- r1.show();
-
- cout << "现在的RMB对象数量为:" << RMB::getCount() << endl;
- return 0;
- }