用c++写一个程序,要求:2.编写一个时间类Ctime,表示某天的时间,包含成员属性:时(hour)、分(minute)、秒(second)。给时间类Ctime设计必要的构造函数及显示属性的成员函数display()。然后重载前置自增++运算符,模拟钟表走动。对于秒钟:每60秒进1分钟,秒从0开始计算;对于分钟:每60分进1小时,分钟从0开始计算。
时间: 2024-03-01 16:52:46 浏览: 93
以下是一个符合要求的C++程序:
```cpp
#include <iostream>
using namespace std;
class Ctime{
private:
int hour;
int minute;
int second;
public:
Ctime(int h, int m, int s): hour(h), minute(m), second(s) {}
void display() const {
cout << hour << ":" << minute << ":" << second << endl;
}
Ctime& operator++() { // 重载前置自增运算符
++second;
if (second == 60) {
second = 0;
++minute;
if (minute == 60) {
minute = 0;
++hour;
if (hour == 24) {
hour = 0;
}
}
}
return *this;
}
};
int main() {
Ctime t(10, 30, 45);
t.display(); // 输出10:30:45
++t; // 模拟钟表走动
t.display(); // 输出10:30:46
++t;
t.display(); // 输出10:30:47
++t;
t.display(); // 输出10:30:48
++t;
t.display(); // 输出10:30:49
++t;
t.display(); // 输出10:30:50
return 0;
}
```
程序中先定义了一个时间类`Ctime`,包含三个私有成员属性:`hour`表示小时,`minute`表示分,`second`表示秒。构造函数用于初始化这三个属性。`display()`函数用于显示当前时间。
对于模拟钟表走动,我们重载了前置自增运算符`++`。每次调用`++`运算符时,秒数加1,如果秒数到达60,则重置为0,同时增加分数,类似地,如果分数到达60,则重置为0,同时增加小时数,如果小时数到达24,则重置为0。最后,`++`运算符返回一个引用,指向当前时间对象,以便进行链式操作。
在主函数中,我们首先定义了一个时间对象`t`,并显示了当前时间。然后通过多次调用`++`运算符,模拟钟表走动,每次调用后都显示当前时间。
阅读全文