#include <iostream>
using namespace std;
struct X{
int _x;
X(int x=0):_x(x){}
};
int main() {
X arr[5];
for (int i = 0;i < 5;i++) {
arr[i] = i;
}
for (int i = 0;i < 5;i++) {
cout << arr[i] <<",";
}
return 0;
}
いつ私はoperator <<
をオーバーロードする必要がありますか?いつオペレータ<<をオーバーロードする必要がありますか?
arr
にはintがあるので、オーバーロードしないでください。<<
?
'arr'はないint''の 'X'の配列です。そのため、ストリームの 'operator <<'をオーバーロードする必要があります。なぜなら、 'X'をとる演算子のオーバーロードがないからです。 – Rakete1111
*オペレータに何かをオーバーロードさせる必要があるのはいつですか?*コンパイラが適切なオーバーロードを見つけることができないと言ったとき(あなたはそれを使ってコンパイラエラーを取得しようとします)。 – NathanOliver
'std :: cout << arr [i] ._ x;'を試してください。あなたはそれを動作させるために何かをオーバーロードする必要はありませんが、 '_x'はそれがプライベートであるように見えるので、適切なオーバーロードをするとより良いものになります – user463035818