预备知识
- 运算符重载的语法 :
重载的运算符像任何其他函数一样也是一个函数,当编译器遇到适当的模式时,就会调用这个函数。
- 小时和分钟转换:
- 1 小时 = 60 分钟
- 给定一个分钟数 mins,如果超过 60 分钟,则需要转换成小时和分钟。具体计算方式如下:
mins / 60 得到小时数
mins % 60 得到分钟数
思路、步骤
- 设计时间类(Timer)
- 成员变量:小时(int hours),分钟(int minutes)
- 成员方法:公共的访问方法、构造方法、输出小时和分钟的方法show、重载+运算符
- 重载+运算符实现思路
- 函数原型为:Time operator+(Time & t); 两个 Time 对象相加后返回相加后的 Time 对象
-
先计算两个 Time 对象的分钟总和,根据转换公式,计算出转换后的小时和分钟
代码实现
#include <iostream>
using namespace std;
class Time {
public:
int hours; // 小时
int minutes; // 分钟
Time(){
hours = 0;
minutes = 0;
}
Time(int h, int m) {
this->hours = h;
this->minutes = m;
}
void show() {
cout << hours << " " << minutes << endl;
}
Time operator+(Time & t) {
Time sum;
sum.minutes = minutes + t.minutes;
sum.hours = hours + t.hours + sum.minutes / 60;
sum.minutes %= 60;
return sum;
}
};
int main() {
int h, m;
cin >> h;
cin >> m;
Time t1(h, m);
Time t2(2, 20);
Time t3 = t1 + t2;
t3.show();
return 0;
}



京公网安备 11010502036488号