#include <iostream>
using namespace std;
class RMB
{
friend const RMB operator+(const RMB &L,const RMB &R);
friend bool operator>(const RMB &L,const RMB &R);
friend RMB &operator--(RMB &O);
friend const RMB operator--(RMB &O,int);
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++;
}
~RMB()
{
count--;
}
void display()
{
cout << "有货币:"<< yuan << "元 " << jiao << "角 " << fen << "分" << endl;
cout << "count=" << count << endl;
}
//成员函数实现+重载
// 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--()
// {
// --yuan;
// --jiao;
// --fen;
// return *this;
// }
//成员函数实现后置--
// const RMB operator--(int)
// {
// RMB temp;
// temp.yuan=yuan--;
// temp.jiao=jiao--;
// temp.fen=fen--;
// return temp;
// }
};
//全局函数实现+重载
const RMB operator+(const RMB &L,const RMB &R)
{
RMB temp;
temp.yuan = L.yuan + R.yuan;
temp.jiao = L.jiao + R.jiao;
temp.fen = L.fen + R.fen;
return temp;
}
//全局函数实现>
bool operator>(const RMB &L,const RMB &R)
{
if(L.yuan>=R.yuan && L.jiao>=R.jiao && L.fen>R.fen)
{
return true;
}
else
{
return false;
}
}
//全局函数实现前置--
RMB &operator--(RMB &O)
{
--O.yuan;
--O.jiao;
--O.fen;
return O;
}
//全局函数实现后置--
const RMB operator--(RMB &O,int)
{
RMB temp;
temp.yuan=O.yuan;
temp.jiao=O.jiao;
temp.fen=O.fen;
return temp;
}
int RMB::count=0;
int main()
{
RMB r1(2,4,5);
RMB r2(2,2,3);
RMB r3=r1+r2;
r3.display();
if(r1>r2)
{cout << "r1>r2" << endl;}
else{cout << "r1<r2" << endl;}
RMB r4(2,2,3);
--r4;
r4.display();
return 0;
}
c++day5
最新推荐文章于 2024-11-09 13:08:09 发布