C++5d
#include <iostream>
using namespace std;
class RMB
{
private:
int yuan;
int jiao;
int fen;
static int count;
public:
RMB() {}
RMB(int yuan, int jiao,int fen):yuan(yuan),jiao(jiao),fen(fen)
{
count++;
}
// 析构函数,销毁对象时 count 自减 1
~RMB()
{
count--;
}
// 静态成员函数,用于获取 count 的值
static int getCount()
{
return 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 &&jiao>R.jiao&& fen>R.fen )
{
return true;
}
else
{
return false;
}
}
//成员函数实现-=号运算符重载
RMB &operator-=(const RMB &R)
{
yuan -= R.yuan;
fen -= R.fen;
jiao-=R.jiao;
return *this;
}
//成员函数实现前++运算符重载
RMB &operator--()
{
--yuan;
--jiao;
--fen;
return *this;
}//成员函数实现后++运算符重载
const RMB operator--(int)
{
RMB temp;
temp.yuan = yuan--;
temp.jiao=jiao++;
temp.fen=fen--;
return temp;
}
void show() const
{
cout << yuan << "元" << jiao << "角" << fen << "分" << endl;
}};
int RMB::count = 0;int main()
{
RMB r1(2,5,7);
RMB r2(1,5,7);
cout << "当前 RMB 对象数量: " << RMB::getCount() << endl;
RMB r3=r1-r2;
r3.show();
RMB r4=r1+r2;
r4.show();
cout << "当前 RMB 对象数量: " << RMB::getCount() << endl;
cout<<"======================================="<<endl;
if (r1 > r2)
{
cout << "r1 > r2" << endl;
}
else
{
cout << "r1 <= r2" << endl;
}
cout << "=================================" << endl;
RMB r5(8,6,8);
r5-=r4;
r5.show();
cout << "当前 RMB 对象数量: " << RMB::getCount() << endl;
cout << "=================================" << endl;
RMB p;
p=--r4;
p.show();
RMB r;
r=r4--;
r.show();
return 0;
}