C++中的运算符重载练习题

本文介绍了C++中运算符重载的应用,通过两个实例展示了如何为RMB类和日期类重载运算符。RMB类实现了加减运算,允许用户进行货币的加减操作;日期类则重载了自增运算符,可以方便地进行日期的增加,并处理特殊边界情况如月份和年的转换。
摘要由CSDN通过智能技术生成

1.RMB类

要求:

定义一个RMB类 Money,包含元、角、分三个数据成员,友元函数重载运算符‘+’(加)
   和 ‘-’(减),实现货币的加减运算
    例如:
    请输入元、角 分:
    2 3 4
    请输入元、角 分:
    3 7 3
    和:6元0角7分
    差:-1元3角9分
    
    又例如:
    请输入元、角 分:
    2 3 4
    请输入元、角 分:
    3 0 0
    和:4元6角0分
    差:-0元6角6分

 

代码实现:

 1 #include <iostream> 
 2 using namespace std;
 3 
 4 class Money 
 5 {
 6 private:
 7     int yuan, jiao, fen;
 8     bool flag;            //标志位,0表示钱数为正,1表示钱数为负 -> 默认结果的钱数为正 
 9 public:
10     Money(); 
11     Money(int fg, int y=0, int j=0, int f=0): yuan(y), jiao(j), fen(f), flag(fg){}
12     friend Money operator+(Money a, Money b);    
13     friend Money operator-(Money a, Money b);
14     void display();
15    
16 };
17 
18 Money::Money()
19 {
20     flag = 0;
21     cout << "请输入元、角 分:" <<endl;
22     cin >> yuan >> jiao >> fen;
23 }
24 
25 void Money::display()
26 {
27     if(flag==1) cout << '-'; 
28     cout << yuan << "" << jiao << "" << fen << "" << endl;
29 }
30
  • 3
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值