#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
,但上述版本的行爲如何?
與運算符重載無關,但是您在構造函數中存在一個錯誤: struct info {int x,int y):x(x),y(y){} //這裏改爲x ,b更改爲y int x; int y; }; – CapelliC
哈哈。是的,只是一個錯字 – user1494533