定义时钟类,用成员函数形式重载运算符“+”、“-”、“++”和“- -”。
时间: 2023-09-30 17:11:30 浏览: 65
好的,这里是一个简单的时钟类的定义,包括所需的运算符重载函数:
```cpp
class Clock {
private:
int hours;
int minutes;
public:
Clock() : hours(0), minutes(0) {}
Clock(int h, int m) : hours(h), minutes(m) {}
// 重载加法运算符
Clock operator+(const Clock& other) const {
int total_minutes = minutes + other.minutes;
int add_hours = total_minutes / 60;
int new_minutes = total_minutes % 60;
int new_hours = (hours + other.hours + add_hours) % 24;
return Clock(new_hours, new_minutes);
}
// 重载减法运算符
Clock operator-(const Clock& other) const {
int total_minutes = (hours - other.hours) * 60 + (minutes - other.minutes);
int new_hours = total_minutes / 60;
int new_minutes = total_minutes % 60;
if (new_minutes < 0) {
new_hours--;
new_minutes += 60;
}
new_hours = (new_hours + 24) % 24;
return Clock(new_hours, new_minutes);
}
// 重载前置递增运算符
Clock& operator++() {
minutes++;
if (minutes >= 60) {
hours++;
minutes = 0;
}
hours %= 24;
return *this;
}
// 重载前置递减运算符
Clock& operator--() {
minutes--;
if (minutes < 0) {
hours--;
minutes = 59;
}
if (hours < 0) {
hours += 24;
}
return *this;
}
};
```
这里定义了一个时钟类 `Clock`,包括两个私有成员变量 `hours` 和 `minutes`,以及一些公有成员函数,其中包括所需的运算符重载函数。
重载加法运算符 `+`,将两个时钟相加得到一个新的时钟对象。
重载减法运算符 `-`,将两个时钟相减得到一个新的时钟对象。
重载前置递增运算符 `++`,将时钟的时间增加一分钟,并返回更新后的时钟对象。
重载前置递减运算符 `--`,将时钟的时间减少一分钟,并返回更新后的时钟对象。
阅读全文