用C++ 设计一个时间类Time,要求 包含时(hour)分(minnute)秒(second)私有数据成员; 包含构造函数,重载关于一切时间加上另一时间的加法运算符+ 重载输出运算符<< 重载输入运算符>>
时间: 2024-05-09 09:20:53 浏览: 218
代码如下:
```c
#include <iostream>
using namespace std;
class Time {
private:
int hour;
int minute;
int second;
public:
Time() : hour(0), minute(0), second(0) {}
Time(int h, int m, int s) : hour(h), minute(m), second(s) {}
Time operator+(const Time& t) const;
friend ostream& operator<<(ostream& os, const Time& t);
friend istream& operator>>(istream& is, Time& t);
};
Time 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++;
}
return Time(h, m, s);
}
ostream& operator<<(ostream& os, const Time& t) {
os << t.hour << ":" << t.minute << ":" << t.second;
return os;
}
istream& operator>>(istream& is, Time& t) {
is >> t.hour >> t.minute >> t.second;
return is;
}
int main() {
Time t1(12, 30, 45);
Time t2(3, 15, 20);
Time t3 = t1 + t2;
cout << t1 << " + " << t2 << " = " << t3 << endl;
cin >> t1;
cout << "You entered: " << t1 << endl;
return 0;
}
```
解释:
- 私有数据成员hour, minute, second表示时、分、秒;
- 构造函数Time()表示默认构造函数,初始化时分秒为0;构造函数Time(int h, int m, int s)表示带参数的构造函数,初始化时分秒为h、m、s;
- 重载加法运算符+,将两个时间相加,并将结果以Time类型返回;
- 重载输出运算符<<,将时间以“时:分:秒”的格式输出;
- 重载输入运算符>>,从标准输入流中读取“时 分 秒”三个整数,并将它们存入Time对象中;
- 在main函数中,演示了加法运算符的重载和输入运算符的重载。
阅读全文