单目运算符重载(时钟类)题目怎么做
时间: 2023-07-05 14:22:20 浏览: 131
下面是一个关于时钟类的单目运算符重载的例子:
```c++
#include <iostream>
using namespace std;
class Clock {
public:
Clock(int h = 0, int m = 0, int s = 0) : hour(h), minute(m), second(s) {}
Clock operator++(); // 前置单目运算符重载
Clock operator++(int); // 后置单目运算符重载
void display() { cout << hour << ":" << minute << ":" << second << endl; }
private:
int hour, minute, second;
};
Clock Clock::operator++() {
second++;
if (second >= 60) {
second = 0;
minute++;
if (minute >= 60) {
minute = 0;
hour = (hour + 1) % 24;
}
}
return *this;
}
Clock Clock::operator++(int) {
Clock old = *this;
++(*this);
return old;
}
int main() {
Clock myClock(23, 59, 55);
myClock.display();
++myClock; // 前置单目运算符
myClock.display();
myClock++; // 后置单目运算符
myClock.display();
return 0;
}
```
在上面的代码中,时钟类Clock重载了前置单目运算符++和后置单目运算符++,使得可以通过对时钟类对象进行++运算符操作来实现时间的增加。前置单目运算符返回修改后的对象,而后置单目运算符返回修改前的对象。
阅读全文