#include<iostream>
#include<conio.h>
using namespace std;
class time
{
int hours,minutes,seconds;
public:
time():hours(0),minutes(0),seconds(0){}
time(int h,int m,int s)
{
hours=h;
minutes=m;
seconds=s;
if(seconds>=60)
{
seconds=0;
minutes++;
if(minutes>=60)
{
hours++;
if(hours>=24)
hours=0;
}
}
}
void display()const
{
cout<<hours<<":"<<minutes<<":"<<seconds<<endl;
}
time operator + (time t)const
{
int s,m=0,h=0;
s=seconds+t.seconds;
if(s>=60)
{
s-=60;
m++;
}
m+=minutes+t.minutes;
if(m>=60)
{
m-=60;
h++;
}
h+=hours+t.hours;
return time(h,m,s);
}
time operator ++ (int)
{
return time(hours,minutes,seconds++);
}
time operator ++ ()
{
return time(hours,minutes,++seconds);
}
time operator -- (int)
{
return time(hours,minutes,seconds--);
}
time operator -- ()
{
return time(hours,minutes,--seconds);
}
};
///////////////////
int main()
{
time t1(4,6,59),t2(9,23,56);
time t3;
t3=t1+t2;
t3.display();
t3=t1++;
t3.display();
t3=++t1;
t3.display();
for(int j=0;j<72;j++)
{
t3=--t1;
t3.display();
}
_getch();
return 0;
}السؤال هو كيف عند عملية decrement تعرف في المرة الاولى الحد ينتهي عند الصفر
وأنا لم أضع شرط