C++:day5

思维导图

例题

cpp 复制代码
#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) 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;
}
相关推荐
冬天的雪20087 分钟前
java内存性能优化工具Mat
java·开发语言
Le1Yu22 分钟前
消息队列以及RabbitMQ的使用
java·开发语言
1白天的黑夜130 分钟前
递归-24.两两交换链表中的节点-力扣(LeetCode)
数据结构·c++·leetcode·链表·递归
羚羊角uou33 分钟前
【Linux】线程池
java·开发语言
1白天的黑夜11 小时前
递归-206.反转链表-力扣(LeetCode)
数据结构·c++·leetcode·链表·递归
Fcy6481 小时前
C++ vector容器的解析和使用
开发语言·c++·vector
无限进步_1 小时前
C语言文件操作全面解析:从基础概念到高级应用
c语言·开发语言·c++·后端·visual studio
_OP_CHEN1 小时前
C++基础:(十五)queue的深度解析和模拟实现
开发语言·c++·stl·bfs·queue·容器适配器·queue模拟实现
sulikey1 小时前
一文彻底理解:如何判断单链表是否成环(含原理推导与环入口推算)
c++·算法·leetcode·链表·floyd·快慢指针·floyd判圈算法