#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
いますが、上記のバージョンはどのように動作しますか?