1.声明一个时间(Time)类,包含Hour、Minute、Second三个数据成员,构造函数实现对时间的初始化,成员函数showtime()实现时间的输出。 (1)要求定义运算符“+”的重载函数,实现对时间的加法(注意Minute、Second不能超过60,Hour不能超过24)。
时间: 2024-02-19 19:03:29 浏览: 80
好的,这是一个比较基础的面向对象编程问题,下面是一个可能的解法:
```cpp
#include <iostream>
using namespace std;
class Time {
private:
int Hour;
int Minute;
int Second;
public:
Time(int h=0, int m=0, int s=0) {
Hour = h;
Minute = m;
Second = s;
}
void showtime() {
cout << Hour << ":" << Minute << ":" << Second << endl;
}
Time operator+(const Time& t) {
Time result;
result.Second = Second + t.Second;
result.Minute = Minute + t.Minute + result.Second / 60;
result.Second %= 60;
result.Hour = Hour + t.Hour + result.Minute / 60;
result.Minute %= 60;
result.Hour %= 24;
return result;
}
};
int main() {
Time t1(23, 45, 30);
Time t2(1, 15, 45);
Time t3 = t1 + t2;
t1.showtime();
t2.showtime();
t3.showtime();
return 0;
}
```
在这个解法中,我们定义了一个 Time 类,包含 Hour、Minute、Second 三个数据成员,以及一个构造函数和一个成员函数 showtime(),分别实现对时间的初始化和输出。我们还重载了运算符“+”,实现了两个 Time 对象的加法。
具体来说,我们在重载函数中定义了一个新的 Time 对象 result,然后将当前对象和另一个对象 t 的 Hour、Minute、Second 三个成员分别相加,把结果保存到 result 中。需要注意的是,如果 Minute 或 Second 超过 60,我们需要将它们进位到 Hour 和 Minute 中。另外,如果 Hour 超过 24,我们需要让它回到 0。
最后,在主函数中我们创建了三个 Time 对象 t1、t2 和 t3,分别表示两个时间和它们的和,然后调用 showtime() 函数输出它们。
阅读全文