C++3.设计一个时间类Time,包括时、分、秒等私有数据成员。重载“+”和“-”运算符以实现时间的加法和减法运算,并进行测试。
时间: 2024-02-21 22:58:35 浏览: 21
好的,我来解答您的问题。以下是Time类的实现:
```cpp
class Time {
private:
int hour;
int minute;
int second;
public:
Time(int h, int m, int s): hour(h), minute(m), second(s) {}
Time(): hour(0), minute(0), second(0) {}
Time operator + (const Time& t) const {
int h = hour + t.hour;
int m = minute + t.minute;
int s = second + t.second;
if (s >= 60) {
s -= 60;
m++;
}
if (m >= 60) {
m -= 60;
h++;
}
if (h >= 24) {
h -= 24;
}
return Time(h, m, s);
}
Time operator - (const Time& t) const {
int h = hour - t.hour;
int m = minute - t.minute;
int s = second - t.second;
if (s < 0) {
s += 60;
m--;
}
if (m < 0) {
m += 60;
h--;
}
if (h < 0) {
h += 24;
}
return Time(h, m, s);
}
void printTime() const {
cout << hour << ":" << minute << ":" << second << endl;
}
};
```
在Time类中,我们定义了时、分、秒三个私有数据成员,分别表示时间的三个维度。我们重载了“+”和“-”运算符,可以用来实现时间的加法和减法运算。在实现过程中,我们需要注意进位和借位的情况,以保证计算结果正确。最后,我们定义了一个printTime()函数,用于打印时间信息。
下面是测试代码:
```cpp
int main() {
Time t1(10, 25, 30);
Time t2(2, 35, 45);
Time t3 = t1 + t2;
t3.printTime(); // 输出:13:1:15
Time t4 = t1 - t2;
t4.printTime(); // 输出:7:49:45
return 0;
}
```
在测试代码中,我们定义了两个Time对象t1和t2,并分别初始化为10:25:30和2:35:45。然后,我们使用“+”运算符将它们相加,得到了一个新的Time对象t3,它的值为13:1:15。接着,我们使用“-”运算符将t1和t2相减,得到了一个新的Time对象t4,它的值为7:49:45。最后,我们分别调用t3和t4的printTime()函数,打印它们的值。
希望能够解答您的问题,如有不明白的地方,可以继续追问我。