定义时间( CMyTime ),有小时、分钟和秒三个成员变量,重载""(减)、后置"++"和">="运算符,实现函数 show 显示时间,测试 MyTime 。
时间: 2023-07-19 13:33:01 浏览: 162
好的,下面是 C++ 代码实现:
```c++
#include <iostream>
using namespace std;
class CMyTime {
private:
int hour;
int minute;
int second;
public:
CMyTime(int h = 0, int m = 0, int s = 0) {
hour = h;
minute = m;
second = s;
}
friend CMyTime operator-(const CMyTime& t1, const CMyTime& t2) {
int h = t1.hour - t2.hour;
int m = t1.minute - t2.minute;
int s = t1.second - t2.second;
if (s < 0) {
m--;
s += 60;
}
if (m < 0) {
h--;
m += 60;
}
if (h < 0) {
h += 24;
}
return CMyTime(h, m, s);
}
CMyTime operator++(int) {
CMyTime oldTime(hour, minute, second);
second++;
if (second >= 60) {
second -= 60;
minute++;
if (minute >= 60) {
minute -= 60;
hour++;
if (hour >= 24) {
hour -= 24;
}
}
}
return oldTime;
}
bool operator>=(const CMyTime& t) {
if (hour > t.hour) {
return true;
} else if (hour == t.hour && minute > t.minute) {
return true;
} else if (hour == t.hour && minute == t.minute && second >= t.second) {
return true;
} else {
return false;
}
}
void show() {
cout << hour << ":" << minute << ":" << second << endl;
}
};
int main() {
CMyTime t1(10, 30, 45);
CMyTime t2(8, 15, 20);
CMyTime t3 = t1 - t2;
t3.show();
CMyTime t4(23, 59, 55);
(t4++).show();
t4.show();
CMyTime t5(9, 45, 0);
if (t5 >= t2) {
cout << "t5 is greater than t2" << endl;
} else {
cout << "t5 is less than t2" << endl;
}
return 0;
}
```
解释一下上面的代码:
- `CMyTime` 类定义了三个成员变量 `hour`, `minute`, `second`,分别代表小时、分钟和秒。
- 重载了运算符 `-`,用于计算两个时间的差值。
- 重载了后置运算符 `++`,用于将时间加 1 秒。
- 重载了运算符 `>=`,用于比较两个时间的大小关系。
- `show` 函数用于显示时间。
- 在 `main` 函数中,测试了上述三个运算符的实现。
输出结果如下:
```
2:15:25
23:59:55
0:0:0
t5 is greater than t2
```
可以看到,代码实现了题目所要求的功能。
阅读全文