定义time类,有3个数据成员int hour,要求重载++和--,规则是++就是秒加一,--就是秒减一
时间: 2024-12-08 15:17:36 浏览: 4
cpp代码-前置++,--,和后置++,--运算符重载
在创建一个名为Time的自定义类来表示时间,我们可以这样设计:
```cpp
class Time {
private:
int hour; // 小时数据成员
int minute; // 分钟数据成员,默认为0,因为秒的变化不影响小时部分
int second; // 秒的数据成员
public:
// 构造函数
Time(int h = 0, int m = 0, int s = 0) : hour(h), minute(m), second(s) {}
// 重载 ++操作符,增加一秒
Time& operator++() {
if (second < 59) {
second++;
} else {
second = 0;
if (minute < 59) {
minute++;
} else {
minute = 0;
if (hour < 23) {
hour++;
} else {
hour = 0; // 如果超过一天,则回到0点
}
}
}
return *this;
}
// 重载 --操作符,减少一秒
Time& operator--() {
if (second > 0) {
second--;
} else {
second = 59;
if (minute > 0) {
minute--;
} else {
minute = 59;
if (hour > 0) {
hour--;
} else {
hour = 23; // 如果少于一天,则回到最后一小时
}
}
}
return *this;
}
// 为了打印方便,提供一个友元函数用于显示时间
friend std::ostream& operator<<(std::ostream& os, const Time& t);
};
// 输出流友元函数,用于在屏幕上显示Time对象
std::ostream& operator<<(std::ostream& os, const Time& t) {
return os << "Time: " << t.hour << ":" << t.minute << ":" << t.second;
}
```
在这个类中,我们重载了`++`和`--`操作符,使得每次对`Time`对象进行递增或递减时,只会改变秒数,然后根据需要更新分钟和小时。注意这里假设一天有24小时。
阅读全文