可以计算两个时间段的相加减,以及operator+()的使用方法:
以下是程序:
myTime.h
#include<iostream>
#ifndef MYTIME1_H_
#define MYTIME1_H_
class Time
{
private:
int hours;
int minutes;
public:
Time();
Time(int h, int m=0);
void AddMin(int m);
void AddHr(int h);
void Reset(int h=0, int m=0);
Time operator+(const Time & t) const;
void Show() const;
};
#endif
myTime.cpp
#include"myTime.h"
Time::Time(){
hours=minutes=0;
}
Time::Time(int h, int m){
hours=h;
minutes=m;
}
void Time::AddMin(int m){
minutes+=m;
hours+=minutes/60;
minutes%=60;
}
void Time::AddHr(int h){
hours+=h;
}
void Time::Reset(int h, int m){
hours=h;
minutes=m;
}
Time Time::operator+(const Time& t) const{
Time sum;
sum.minutes=minutes+t.minutes;
sum.hours=hours+t.hours+sum.minutes/60;
sum.minutes%=60;
return sum;
}
void Time::Show()const{
std::cout<<hours<<"hours"<<minutes<<"minutes";
}
myTimeTest.cpp
#include<iostream>
#include"myTime.h"
int main(){
using std::cout;
using std::endl;
Time planning;
Time coding (2,40);
Time fixing(5,55);
Time total;
cout<<"planning time =";
planning.Show();
cout<<endl;
cout<<"coding time =";
coding .Show();
cout<<endl;
cout<<"fixing time =";
fixing.Show();
cout<<endl;
total=coding + fixing;
cout<<"coding + fixing =";
total.Show();
cout<<endl;
Time moreFixing (3,28);
cout<<"more fixing time =";
moreFixing.Show();
cout<<endl;
total=moreFixing.operator+(total);
cout<<"moreFixing.operator+(total) =";
total.Show();
cout<<endl;
return 0;
}