对减法进行修改,假定两个时间相减只是为了知道他们的时间差,用于定时。
定义一个People来使用Clock类,方法是显示当前时间,设置闹钟,察看时间提示。
#include
#include
#include
using namespace std;
///define class Clock
class Clock
{
public:
Clock();
Clock(int, int);
~Clock();
///test valid
bool test();
bool test(int h, int m);
///show the time
void showTime();
///give a prompt
void prompt();
///create object use ctor
Clock createObject();
friend class People;
///overload operator
friend Clock operator+(const Clock& c1, const Clock& c2);
friend Clock operator-(const Clock& c1, const Clock& c2);
friend ostream &operator<<(ostream &os, Clock &c);
private:
int hour;
int minutes;
};
///ctor
Clock::Clock()
{
}
Clock::Clock(int h, int m)
{
hour = h;
minutes = m;
}
Clock::~Clock()
{
}
///test valid
bool Clock::test()
{
if (hour > 23 || hour < 0 || minutes > 59 || minutes < 0)
return false;
return true;
}
bool test(int h, int m)
{
if (h > 23 || h < 0 || m > 59 || m < 0)
return false;
return true;
}
///show time
void Clock::showTime()
{
cout<<"The time is:"<= t2)
temp = t1 - t2;
else
temp = t1 + 24 * 60 -t2;
return Clock(temp / 60, temp % 60);
}
ostream &operator<<(ostream &os, Clock &c)
{
os<>h>>m;
while (!test(h,m))
{
cout<<"Error input."<>h>>m;
}
return Clock(h,m);
}
class People
{
public:
///ctor
People();
People(int, int);
~People();
///look the current time
void lookTime();
///set a time for meetting
void setMeetingTime(int h, int m);
///ask how long to meeting
Clock howLong();
private:
///current time
Clock time;
///meeting time
Clock timing;
};
People::People()
{
time.hour = time.minutes = timing.hour = timing.minutes = 0;
}
People::People(int h, int m)
{
time.hour = h;
time.minutes = m;
timing.hour = timing.minutes = 0;
}
People::~People()
{
}
///look the current time
void People::lookTime()
{
time.showTime();
}
///set a time for meetting
void People::setMeetingTime(int h, int m)
{
timing.hour = h;
timing.minutes = m;
}
///ask how long to meeting
Clock People::howLong()
{
return (timing - time);
}
int main()
{
///create a random
srand((int)time(0));
int num = rand() % (24 * 60);
People people(num / 60, num % 60);
people.lookTime();
cout<<"Please enter your meeting time(two integers):";
int h, m;
cin>>h>>m;
people.setMeetingTime(h, m);
Clock c = people.howLong();
cout<<"There are "<