【发布时间】:2021-01-23 04:18:41
【问题描述】:
class Time {
private:
int hour = 0;
int minute = 0;
public:
Time(int hour, int minute);
void setHour(int hour);
void setMinute(int minute);
int getHour();
int getMinute();
void print();
void advance();
};
Time::Time(int h, int m) // DONE
{
hour = h;
minute = m;
if (hour > 23)
{
hour = 0;
}
if (minute > 59)
{
minute = 0;
}
}
void Time::setHour(int h) // DONE
{
if (h > 23)
{
hour = 0;
}
else
{
hour = h;
}
}
void Time::setMinute(int m) // DONE
{
if (m > 59)
{
minute = 0;
}
else
{
minute = m;
}
}
int Time::getHour() // DONE
{
return hour;
}
int Time::getMinute() // DONE
{
return minute;
}
void Time::print() // DONE
{
string period;
string minutezero;
if (hour > 12)
{
hour = hour - 12;
period = "PM";
}
else if (hour < 13)
{
period = "AM";
}
if (hour == 0)
{
hour = 12;
period = "AM";
}
if (minute < 10)
{
cout << hour << ":" << "0" << minute << " " << period;
}
else if (minute > 9)
{
cout << hour << ":" << minute << " " << period;
}
}
void Time::advance() // DONE
{
minute = minute + 1;
if (minute == 60)
{
minute = 0;
hour = hour + 1;
}
if (hour == 24)
{
hour = 0;
}
}
在我的 int main 函数中,我想创建一个数组 时间 t[5] 将容纳 5 个时间对象。我将如何编码?
这是我的模块一字不差的说:
**修改 Time 类以设置构造函数,如下所示 可以在驱动程序中创建时间对象。设置如下指定的时间数组和 也可以打印驱动程序中的时间(可以添加到普通版本并提交一个版本)。
时间t1; // 小时: 0, 分钟: 0, 12:00 AM
时间 t2(8); // 小时: 8, 分钟: 0, 8:00 AM
时间 t3(13, 30); // 小时:13,分钟:30,下午 1:30
时间 t4(25, 5); // 小时: 0, 分钟: 5, 12:05 AM
时间 t4(12, 60); // 小时: 12, 分钟: 0, 12:00 PMI**
【问题讨论】:
-
您的
Time类需要一个默认构造函数。目前它只有一个带有两个参数的构造函数。我建议你创建另一个不带参数的构造函数,只是将其成员初始化为零。 -
其实看了后续的需求,看来你也只需要一个小时来支持构建。在这种情况下,您可以避免为现有构造函数声明默认参数值。
-
等待.. 原始要求是否表明当天有 25 小时?大声笑(一天 24 小时:24 == 0)
标签: c++ arrays class constructor