سلام
من یه برنامه دارم که کلاسی بنویسید که زمان انجام کار را بگیره و یه مقداری رو به اون اضافه کنه با operator+.همچنین دوتا عملگر >> و<< نیز اور لود شده باشه.
اینا رو همشو نوشتم درستم عمل می کنه فقط زمانی که زمانو با cinبرای یکی از شی هام می گیرم دیگه تابع هایی که دقیقه رو چک می کنه دیگه فراخونی نمی شه!!!!نمی دونم باید چیکار کنم که برای اونا هم مقدار ورودی چک بشه!!!
این برناممه
#include <iostream>
#include <stdio.h>
using namespace std;
class worktime
{
friend ostream &operator<<( ostream&, const worktime & );
friend istream &operator>>( istream&, worktime & );
private:
int hour;
int minute;
public:
worktime(int hr=0,int mi=0 );
void set_time(int hr,int mi);
void set_hour(int hr);
void set_minute(int mi);
worktime operator+(const worktime &time);
};
worktime::worktime(int hr,int mi)
{
set_time(hr,mi);
}
void worktime::set_time(int hr,int mi)
{
set_hour(hr);
set_minute(mi);
}
void worktime::set_hour(int hr)
{
if(hr>0)
hour=hr;
else
hour=0;
}
void worktime::set_minute(int mi)
{
minute = ( mi >= 0 && mi < 60 ) ? mi : 0;
}
worktime worktime:

perator+(const worktime &time1)
{
worktime time(0,0);
minute=minute+time1.minute;
if(minute>=60)
{
time.minute=minute%60;
time.hour=hour+(minute/60)+time1.hour;
}
else
{
time.hour=hour+time1.hour;
time.minute=minute;
}
return time;
}
ostream &operator<<( ostream &output, const worktime &time )
{
output << time.hour << ":"<<time.minute;
return output;
}
istream &operator>>( istream &input, worktime &time )
{
input>>time.hour>>time.minute;
return input;
}
int main()
{
worktime time;
worktime time1(2,30);
worktime time2(0,0);
cout<<"first time:";
cin>>time;
cout<<time<<endl;
cout<<"new time:";
time2=time+time1;
cout<<time2;
return 0;
}