#include <iostream>
using namespace std;
struct info {
info(int x, int y) : x(x), y(y) {}
int x;
int y;
};
ostream& operator<<(ostream& out, const info &myinfo){
out << myinfo.x << " " << myinfo.y;
return cout;
}
int main() {
info a(1,2);
info b(3,4);
cout << a << " " << b << endl;
}
上述程序的输出似乎很好,即使operator <<
.
谁能告诉我这个超载问题的影响是什么?我知道重载函数应该返回out
而不是返回cout
,但是上述版本的行为如何?