这个重载运算符怎么改?
  • 板块学术版
  • 楼主TLE_Forever
  • 当前回复7
  • 已保存回复7
  • 发布时间2020/4/30 13:01
  • 上次更新2023/11/7 03:35:00
查看原帖
这个重载运算符怎么改?
286238
TLE_Forever楼主2020/4/30 13:01
#include <iostream>
using namespace std;
class time {
private :
	int hour;
	int minute;
	int second;
public:
	time();
	time(int h, int m, int s);
	time operator + (time t);
};
time::time() {
	hour = minute = second = 0;
}
time::time(int h, int m, int s) {
	hour = h;
	minute = m;
	second = h;
}
time time::operator+(time t) {
	time sum;
	int goon;
	sum.second = second + t.second;
	goon = sum.second / 60;
	sum.second %= 60;
	sum.minute = minute + t.minute + goon;
	goon = sum.minute / 60;
	sum.minute %= 60;
	sum.hour = hour + t.hour + goon;
	return sum;
}
ostream & operator << (ostream &out, time &t) {
	out << t.hour << " : " << t.minute << " : " << t.second;
	return out;
}
int main() {
	int h1, h2, m1, m2, s1, s2;
	cin >> h1 >> m1 >> s1;
	cin >> h2 >> m2 >> s2;
	time t1(h1, m1, s1), t2(h2, m2, s2);
	cout << t1 + t2 << endl;
	return 0;
}

问题出现在<<的重载上。

ostream & operator << (ostream &out, time &t) {
	out << t.hour << " : " << t.minute << " : " << t.second;
	return out;
}

这段代码编译器提示我无法访问t.hourt.minutet.second

怎么修改使cout中的<<运算符能够支持输出time类型?

以类似于24:45:1224:45:12这种形式输出

2020/4/30 13:01
加载中...