【对时钟类进行运算符重载】

文章展示了如何在C++中创建一个时钟类,并重载了加法运算符和前置、后置自增运算符,以实现时间的累加。通过实例展示了类的使用和时间的显示。
摘要由CSDN通过智能技术生成

【问题描述】对时钟类进行重载【输入形式】
【输出形式】
【样例输入】
【样例输出】
【样例说明】
【评分标准】

代码如下:

#include  <iostream>
using  namespace  std;
class  Clock        //时钟类声明
{
public:        //外部接口
        Clock(int  NewH=0,  int  NewM=0,  int  NewS=0);
        void  ShowTime();
          Clock  operator  ++();                //前置单目运算符重载
  //后置单目运算符重载
          
    Clock operator++(int);
      
  //+运算符重载
                  
    Clock operator+(const Clock& other) {
        int newHour = (Hour + other.Hour) % 24;
        int newMinute = Minute + other.Minute;
        int newSecond = Second + other.Second;

        if (newSecond >= 60) {
            newSecond -= 60;
            newMinute++;
        }
        if (newMinute >= 60) {
            newMinute -= 60;
            newHour = (newHour + 1) % 24;
        }
        return Clock(newHour, newMinute, newSecond);
    }
    
private:        //私有数据成员
        int  Hour,  Minute,  Second;
};
 Clock Clock::operator++() { 
        Second++;
        if (Second >= 60) {
            Second -= 60;
            Minute++;
            if (Minute >= 60) {
                Minute -= 60;
                Hour = (Hour + 1) % 24;
            }
        }
        return *this;
    }
    Clock Clock::operator++(int) {
        Clock temp(*this);
        ++(*this);
        return temp;
    }
Clock::Clock(int NewH, int NewM, int NewS) {
    Hour = NewH;
    Minute = NewM;
    Second = NewS;
}


void  Clock::ShowTime()
{    
      cout<<Hour<<":"<<Minute<<":"<<Second<<endl;
}

int  main()
{
        Clock  c1(23,59,59),c2(5,12,10),c3;
        c1.ShowTime();
        c1++;
        c1.ShowTime();
        c3=++c2;
        c3.ShowTime();
        c3=c2+c1;
        c3.ShowTime();
        return  0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武帝为此

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值