静态变量与函数重载

#include <iostream>

class RMB
{
private:
	int yuan;
	int jiao;
	int fen;
	static int count;
public:
	RMB() = default;
	RMB(int yuan, int jiao, int fen):yuan(yuan),jiao(jiao),fen(fen)
	{
		count++;
	}
	RMB(const RMB& other) :yuan(other.yuan), jiao(other.jiao), fen(other.fen)
	{
		count++;
	}

	const RMB operator+(const RMB& a) const
	{
		RMB temp;
		temp.yuan = this->yuan + a.yuan;
		temp.fen = this->fen + a.fen;
		temp.jiao = this->jiao + a.jiao;
		return temp;
	}
	const RMB operator-(const RMB& a) const
	{
		RMB temp;
		temp.yuan = this->yuan - a.yuan;
		temp.fen = this->fen - a.fen;
		temp.jiao = this->jiao - a.jiao;
		return temp;
	}
	bool operator>(const RMB& a) const
	{
		if (this->yuan > a.yuan) return true;
		if (this->yuan == a.yuan && this->jiao > a.jiao) return true;
		if (this->yuan == a.yuan && this->jiao == a.jiao && this->fen > a.fen) return true;
		return false;
	}

	RMB& operator--(int)
	{
		if(this->yuan != 0) this->yuan--;
		if (this->jiao != 0) this->jiao--;
		if(this->fen != 0) this->fen--;
		return *this;
	}
	RMB& operator--()
	{
		if (this->yuan != 0) --this->yuan;
		if (this->jiao != 0) --this->jiao;
		if (this->fen != 0) --this->fen;
		return *this;
	}

	void myprintf()
	{
		std::cout << this->yuan << "  " << this->jiao << "  " << this->fen << std::endl;
	}

	/*int dispaly()
	{
		return count;
	}*/
	static int display();
};

int RMB::count = 0;
int RMB::display()
{
	return count;
}

int main()
{
	RMB R1(2, 0, 5);
	RMB R2(R1);
	RMB R3(2, 4, 5);
	R1--;
	R1.myprintf();
	std::cout << RMB::display() << std::endl;
	return 0;
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值