#include <iostream>
using namespace std;
class RMB
{
friend const RMB operator+(const RMB &R,const RMB &L);
friend const RMB operator-(const RMB &R,const RMB &L);
friend bool operator>(const RMB &L,const RMB &R);
friend RMB &operator--(RMB &O,int);
friend RMB &operator--(RMB &O);
private:
int yuan=0;
int jiao=0;
int fen=0;
static int count;
public:
RMB()
{
count++;
}
RMB(int yuan,int jiao,int fen):yuan(yuan),jiao(jiao),fen(fen)
{
count++;
}
~RMB()
{
count--;
}
static int getCount()
{
return count;
}
void show()
{
cout << yuan << "元\t" << jiao << "角\t" << fen << "分" << endl;
}
};
const RMB operator+(const RMB &R,const RMB &L)
{
RMB temp;
temp.yuan=L.yuan+R.yuan;
temp.jiao=L.jiao+R.jiao;
temp.fen=L.fen+R.fen;
}
const RMB operator-(const RMB &R,const RMB &L)
{
RMB temp;
temp.yuan=L.yuan-R.yuan;
temp.jiao=L.jiao-R.jiao;
temp.fen=L.fen-R.fen;
}
bool operator>(const RMB &L,const RMB &R)
{
if (L.yuan > R.yuan)
{
if (L.jiao > R.jiao)
{
if (L.fen > R.fen)
{
return true;
}
return true;
}
return true;
}
else
{
return false;
}
}
RMB &operator--(RMB &O,int)
{
RMB temp;
temp.yuan=O.yuan--;
temp.jiao=O.jiao--;
temp.fen=O.fen--;
}
RMB &operator--(RMB &O)
{
++O.yuan;
++O.jiao;
++O.fen;
}
int RMB::count = 0;
int main()
{
cout << "RMB对象数量:" << RMB::getCount() << endl;
RMB R1(50, 1, 1);
cout << "RMB对象数量:" << RMB::getCount() << endl;
RMB R2(20, 5, 5);
cout << "RMB对象数量:" << RMB::getCount() << endl;
RMB R3 = R1 + R2;
R3.show();
RMB R4 = R1 - R2;
R4.show();
if (R1 > R2)
{
cout << "ture" << endl;
}
else
{
cout << "false" << endl;
}
R1--;
--R2;
R1.show();
cout << "现在的RMB对象数量为:" << RMB::getCount() << endl;
return 0;
}
C++周末作业
于 2024-06-10 17:56:41 首次发布