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;
}
相关推荐
Mr_Xuhhh2 分钟前
项目需求分析(2)
c++·算法·leetcode·log4j
橙*^O^*安26 分钟前
Go 语言基础:变量与常量
运维·开发语言·后端·golang·kubernetes
NiKo_W29 分钟前
Linux 文件系统与基础指令
linux·开发语言·指令
PAK向日葵31 分钟前
【C/C++】面试官:手写一个memmove,要求性能尽可能高
c语言·c++·面试
工程师小星星35 分钟前
Golang语言的文件组织方式
开发语言·后端·golang
乂爻yiyao35 分钟前
java 代理模式实现
java·开发语言·代理模式
张子夜 iiii1 小时前
实战项目-----Python+OpenCV 实现对视频的椒盐噪声注入与实时平滑还原”
开发语言·python·opencv·计算机视觉
2301_770373731 小时前
Java集合
java·开发语言
Jared_devin1 小时前
二叉树算法题—— [蓝桥杯 2019 省 AB] 完全二叉树的权值
数据结构·c++·算法·职场和发展·蓝桥杯
搞全栈小苏1 小时前
基于Qt QML和C++的MQTT测试客户端(CMakeLists实现)
xml·c++·qt