C++程序设计: 设计一个时间类Time,要求如下:
C++程序设计:设计一个时间类Time,要求如下:⑴:包含时(hour),分(minute),秒(second)私有数据成员。⑵:包含构造函数,重载关于一段时间加上另一段...
C++程序设计:
设计一个时间类Time,要求如下:⑴:包含时(hour),分(minute),秒(second)私有数据成员。
⑵:包含构造函数,重载关于一段时间加上另一段时间的加法运算符“+”、重载关于一段时间减去另一段时间的减法运算符“-”、重载输入运算符“<<”和输出运算符“>>” 展开
设计一个时间类Time,要求如下:⑴:包含时(hour),分(minute),秒(second)私有数据成员。
⑵:包含构造函数,重载关于一段时间加上另一段时间的加法运算符“+”、重载关于一段时间减去另一段时间的减法运算符“-”、重载输入运算符“<<”和输出运算符“>>” 展开
1个回答
展开全部
#include<iostream>
using namespace std;
class Time
{
public:
Time(void);
Time(int hour,int minute,int second);
Time operator +(const Time &time);
Time operator -(const Time &time);
friend ostream& operator <<(ostream& out,const Time &time);
friend istream& operator >>(istream& in,const Time &time);
private:
int hour;
int minute;
int second;
};
Time::Time(void)
{
this->hour = 0;
this->minute = 0;
this->second = 0;
}
Time::Time(int hour,int minute,int second)
{
this->hour = hour;
this->minute = minute;
this->second = second;
}
Time Time::operator +(const Time &time)
{
Time newTime;
newTime.hour = this->hour + time.hour;
newTime.minute = this->minute+ time.minute;
newTime.second = this->second + time.second;
if(newTime.second >= 60)
{
newTime.second %= 60;
newTime.minute += 1;
}
if(newTime.minute >= 60)
{
newTime.minute %= 60;
newTime.hour += 1;
}
if(newTime.hour >= 24)
{
newTime.hour %= 24;
}
return newTime;
}
Time Time::operator -(const Time &time)
{
Time newTime;
newTime.hour = this->hour - time.hour;
newTime.minute = this->minute - time.minute;
newTime.second = this->second - time.second;
if(newTime.second < 0)
{
newTime.second += 60;
newTime.minute -= 1;
}
if(newTime.minute < 0)
{
newTime.minute += 60;
newTime.hour -= 1;
}
if(newTime.hour < 0)
{
newTime.hour += 24;
}
return newTime;
}
ostream& operator <<(ostream& out,const Time &time)
{
out<<time.hour<<":"<<time.minute<<":"<<time.second<<endl;
return out;
}
istream& operator >>(istream& in,const Time &time)
{
in>>time.hour>>time.minute>>time.second;
return in;
}
更多追问追答
追问
没有main函数吗?
这个运行出来好多错啊
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询