题目:
基于C++的Clock类设计与实现
问题描述:
设计一个名为Clock的类,用于表示一个时钟。该类应包含以下特性:
- 私有数据成员:
hour:表示小时,类型为int。minute:表示分钟,类型为int。second:表示秒,类型为int。
- 公有成员函数:
- 默认构造函数:初始化时钟为12:30:30,并在控制台输出“正在默认构造对象”。
- 带参数的构造函数:接受三个参数(小时、分钟、秒),用于初始化时钟。如果提供的时间值不合理(即小时不在0-23之间,分钟或秒不在0-59之间),则使用默认值12:30:30初始化,并在控制台输出“错误:提供的时间值不合理,使用默认值初始化。”。否则,在控制台输出“正在构造对象”。
- 拷贝构造函数:接受一个
Clock对象的引用,复制该对象,并在控制台输出“正在复制构造对象”。 - 析构函数:在对象销毁时,在控制台输出“正在析构对象”。
showtime成员函数:无参数,用于在控制台显示时钟的当前时间,格式为hour:minute:second。
- 在
main函数中:- 创建一个使用默认构造函数的
Clock对象myclock,并显示其时间。 - 创建一个使用带参数构造函数(小时为8,分钟为16,秒为16)的
Clock对象yourclock,并显示其时间。 - 使用
yourclock对象通过拷贝构造函数创建另一个Clock对象otherclock,并显示其时间。
- 创建一个使用默认构造函数的
源代码:
#include <iostream>
using namespace std;
class Clock
{
private:
int hour, minute, second;
public:
// 默认构造函数,初始化时钟为12:30:30
Clock() : hour(12), minute(30), second(30)
{
cout << "正在默认构造对象" << endl;
}
// 构造函数,使用提供的小时、分钟和秒初始化时钟
Clock(int Newh, int Newm, int News) : hour(Newh), minute(Newm), second(News)
{
// 可以添加一些检查以确保时间的合理性
if (hour < 0 || hour > 23 || minute < 0 || minute > 59 || second < 0 || second > 59) {
cout << "错误:提供的时间值不合理,使用默认值初始化。" << endl;
hour = 12; minute = 30; second = 30;
}
cout << "正在构造对象" << endl;
}
// 拷贝构造函数,复制一个Clock对象
Clock(const Clock& c) : hour(c.hour), minute(c.minute), second(c.second)
{
cout << "正在复制构造对象" << endl;
}
// 析构函数
~Clock()
{
cout << "正在析构对象\n";
}
// 显示时间
void showtime() const
{
cout << hour << ":" << minute << ":" << second << endl;
}
};
int main()
{
Clock myclock;
cout << "myclock:" << endl;
myclock.showtime();
cout << "yourclock:" << endl;
Clock yourclock(8, 16, 16);
yourclock.showtime();
cout << "otherclock:" << endl;
Clock otherclock(yourclock);
otherclock.showtime();
return 0;
}
运行截图:

2189

被折叠的 条评论
为什么被折叠?



