设计一个 `Clock` 类,该类具有默认时间“0:0:0”,包括三个私有数据成员:小时、分钟和秒。重载 `==` 运算符以判断两个时钟是否在相同时间。重载 `>>` 运算符以通过键盘输入时间。
时间: 2024-10-27 08:06:32 浏览: 14
设计一个时钟类Clock.zip_c++ 时钟clock_时钟类_时钟类设计_设计CClock类_设计时钟类
设计一个名为 `Clock` 的类,可以按照以下步骤实现:
```cpp
#include <iostream>
class Clock {
private:
int hours;
int minutes;
int seconds;
public:
// 初始化构造函数,设置默认时间为0:0:0
Clock() : hours(0), minutes(0), seconds(0) {}
// 重载 == 运算符,用于比较两个时钟的时间是否相等
bool operator==(const Clock& other) const {
return (hours == other.hours && minutes == other.minutes && seconds == other.seconds);
}
// 读取用户输入并更新时间,重载 >> 运算符
friend std::istream& operator>>(std::istream& input, Clock& clock) {
input >> clock.hours >> clock.minutes >> clock.seconds;
if (!input || (clock.hours < 0 || clock.hours > 23 || clock.minutes < 0 || clock.minutes > 59 || clock.seconds < 0 || clock.seconds > 59)) {
std::cerr << "Invalid time format! Please enter hours (0-23), minutes (0-59), and seconds (0-59)." << std::endl;
input.clear();
input.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}
return input;
}
// 自定义打印方法,方便查看时间
void displayTime() const {
std::cout << hours << ":" << minutes << ":" << seconds << std::endl;
}
};
int main() {
Clock clock1;
clock1.displayTime(); // 输出默认时间 0:0:0
Clock clock2;
std::cin >> clock2; // 用户输入时间
clock1 = clock2; // 如果用户输入合法,将设置clock1与clock2相同时间
clock1.displayTime();
if (clock1 == clock2) {
std::cout << "Both clocks are at the same time." << std::endl;
} else {
std::cout << "The clocks have different times." << std::endl;
}
return 0;
}
```
在这个例子中,`Clock` 类包含三个私有变量,初始化构造函数设置了默认值。`operator==` 比较了两个时钟的时间是否一致,`operator>>` 用于从标准输入获取时间。`main` 函数展示了如何创建钟对象、读取用户输入以及检查时间是否相等。
阅读全文