77 lines
1.4 KiB
C++
77 lines
1.4 KiB
C++
//设计一个时间类Time,它能够完成秒钟的自增运算。
|
||
|
||
#include<iostream>
|
||
using namespace std;
|
||
|
||
class Time{
|
||
private:
|
||
int hour,minute,second;
|
||
public:
|
||
Time(int h,int m, int s);
|
||
Time operator++();
|
||
//友元重载需要参数
|
||
friend Time operator--(Time &t);
|
||
void display();
|
||
};
|
||
|
||
Time::Time(int h, int m, int s){
|
||
hour=h;
|
||
minute=m;
|
||
second=s;
|
||
if (hour>=24)
|
||
hour=0;
|
||
if (minute>=60)
|
||
minute=0;
|
||
if (second>=60)
|
||
second=0;
|
||
}
|
||
|
||
Time Time::operator++(){
|
||
++second;
|
||
if (second>=60){
|
||
second=0;
|
||
++minute;
|
||
if(minute>=60){
|
||
minute=0;
|
||
++hour;
|
||
if(hour>=24)
|
||
hour=0;
|
||
}
|
||
}
|
||
return *this;
|
||
}
|
||
Time operator--(Time &t){
|
||
--t.second;
|
||
if (t.second>=60){
|
||
t.second=0;
|
||
++t.minute;
|
||
if(t.minute>=60){
|
||
t.minute=0;
|
||
++t.hour;
|
||
if(t.hour>=24)
|
||
t.hour=0;
|
||
}
|
||
}
|
||
return t;
|
||
}
|
||
void Time::display(){
|
||
cout<<hour<<":"<<minute<<":"<<second<<endl;
|
||
}
|
||
int main(int argc, char const *argv[])
|
||
{
|
||
Time t1(23,59,59);
|
||
t1.display();
|
||
++t1; //隐式调用
|
||
t1.display();
|
||
t1.operator++(); //显式调用
|
||
t1.display();
|
||
Time t2(24,60,60);
|
||
t2.display();
|
||
++t2;
|
||
t2.display();
|
||
--t2;
|
||
t2.display();
|
||
system("pause");
|
||
return 0;
|
||
}
|