用c++实现设计一个时间类Time,包括时、分、秒等私有数据成员。重载“+”和“-”运算符以实现时间的加法和减法运算,并进行测试。
时间: 2024-02-21 15:58:50 浏览: 92
好的,我可以帮您解答这个问题。
首先,我们需要定义一个时间类 Time,包括时、分、秒等私有数据成员。并且需要定义构造函数、析构函数、复制构造函数和赋值运算符等函数。
以下是 Time 类的定义:
```c++
class Time {
public:
Time(int h = 0, int m = 0, int s = 0); // 构造函数
Time(const Time& t); // 复制构造函数
~Time(); // 析构函数
Time& operator=(const Time& t); // 赋值运算符
Time operator+(const Time& t); // 加法运算符重载
Time operator-(const Time& t); // 减法运算符重载
void display(); // 显示时间
private:
int hour; // 时
int minute; // 分
int second; // 秒
};
```
接下来,我们需要实现构造函数、析构函数、复制构造函数和赋值运算符等函数。
```c++
Time::Time(int h, int m, int s) {
hour = h;
minute = m;
second = s;
}
Time::Time(const Time& t) {
hour = t.hour;
minute = t.minute;
second = t.second;
}
Time::~Time() {}
Time& Time::operator=(const Time& t) {
hour = t.hour;
minute = t.minute;
second = t.second;
return *this;
}
```
下一步,我们需要重载加法运算符和减法运算符,实现时间的加法和减法运算。
```c++
Time Time::operator+(const Time& t) {
Time res;
res.second = second + t.second;
res.minute = minute + t.minute + res.second / 60;
res.hour = hour + t.hour + res.minute / 60;
res.minute %= 60;
res.second %= 60;
return res;
}
Time Time::operator-(const Time& t) {
Time res;
res.second = second - t.second;
res.minute = minute - t.minute + res.second / 60;
res.hour = hour - t.hour + res.minute / 60;
res.minute %= 60;
res.second %= 60;
return res;
}
```
最后,我们需要实现一个显示时间的函数。
```c++
void Time::display() {
cout << hour << ":" << minute << ":" << second << endl;
}
```
以下是测试代码:
```c++
int main() {
Time t1(10, 20, 30);
Time t2(1, 2, 3);
Time t3 = t1 + t2;
Time t4 = t1 - t2;
t1.display();
t2.display();
t3.display();
t4.display();
return 0;
}
```
输出结果:
```
10:20:30
1:2:3
11:22:33
9:18:27
```
以上就是利用 C++ 实现一个时间类 Time,并重载加法和减法运算符的方法。
阅读全文