预备知识
- 运算符重载的语法 :
重载的运算符像任何其他函数一样也是一个函数,当编译器遇到适当的模式时,就会调用这个函数。
- 小时和分钟转换:
- 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; }