【例6.1】用成员函数重载运算符一
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【例6.1】用成员函数重载运算符一
#include
class RMB{
public:
RMB(unsigned int d, unsigned int c);
RMB operator+(RMB&); // 声明运算符函数,重载+,只有一个参数 RMB& operator++(); // 声明运算符函数,重载++,无参数
void display(){ cout << (yuan + jf / 100.0) << endl; } protected:
unsigned int yuan;
unsigned int jf;
};
RMB::RMB(unsigned int d, unsigned int c)
{
yuan = d;
jf = c;
while(jf >=100){
yuan ++;
jf -= 100;
}
}
RMB RMB::operator +(RMB& s) // 定义运算符函数
{
unsigned int c = jf + s.jf;
unsigned int d = yuan + s.yuan;
RMB result(d,c); // 创建RMB对象result return result;
}
RMB& RMB::operator++() // 定义运算符函数
{
jf ++;
if(jf >= 100){
jf -= 100;
yuan++;
}
return *this; // 返回当前对象
}
void main()
{
RMB d1(1, 60);
RMB d2(2, 50);
RMB d3(0, 0);
d3 = d1 + d2; // 调用重载运算符函数operator +,使RMB类的两个对象可以相加 ++d3; // 调用重载运算符函数operator ++,使RMB类的对象d3可以自增 d3.display();
}
程序的运行结果为:
4.11