C++ テストで見た質問と混同しています。コードは次のとおりです。
#include <iostream>
using namespace std;
class Int {
public:
int v;
Int(int a) { v = a; }
Int &operator[](int x) {
v+=x;
return *this;
}
};
ostream &operator<< (ostream &o, Int &a) {
return o << a.v;
}
int main() {
Int i = 2;
cout << i[0] << i[2]; //why does it print 44 ?
return 0;
}
これが印刷されると確信していまし24たが、代わりに印刷され44ます。誰かにこれを明確にしてもらいたいです。累積評価ですか?また、<< バイナリインフィックスですか?
前もって感謝します
編集:演算子のオーバーロードが明確に定義されていない場合、誰かがここでオーバーロードされた演算子のより良い実装を提供して、出力することができます24か?