C++day5

发布于:2024-06-12 ⋅ 阅读:(141) ⋅ 点赞:(0)

思维导图:

代码:

#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;
}

运行结果:


网站公告

今日签到

点亮在社区的每一天
去签到