运算符重载

#include<iostream>
using namespace std;
class Clock{  int hour,minute,second;
    public:
           Clock(int hour=0,int minute=0,int second=0) ;
           void showtime()const;
           Clock& operator++();
           Clock operator++(int);
           };
Clock::Clock(int hour,int minute,int second) 切记带默认形参的构造函数,声明时带参数,但定义时不需要带参数,,,
{  if(0<=hour&&hour<24&&0<=minute&&minute<60&&0<=second&&second<60)
      { this->hour=hour;
         this->minute=minute;
         this->second=second;
         }
         else cout<<"Time error!"<<endl;
                                                                      
       }
     Clock &Clock::operator++()返回值为当前对象的引用。
       {          second++;
             if(second>=60)
               {  second-=60;
                  minute++;
                  if(minute>=60)
                    {minute-=60;
                     hour++;
                     hour%=24;
                    }
                }
               return *this;
        }
        Clock  Clock::operator++(int)返回值不是当前对象的引用。
        {     Clock old=*this;
              ++(*this);
              return old;
         }
         void Clock::showtime() const
         { cout<<this->hour<<":"<<this->minute<<":"<<this->second<<endl;
              }
int main()
{   Clock c1(23,59,59);
      c1.showtime();
      (c1++).showtime();
      (++c1).showtime();
      //system("pause");
      
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值