いくつかの操作を実行する Player クラスを定義したので、いくつかの基本的な演算子をオーバーロードすると便利です。具体的には、Player オブジェクト間の比較に < を使用したいと考えています。そのため、クラスには次のものがあります。
bool operator<(const Player& rhs) const {return (*this < rhs );}
残念ながら、これは問題を引き起こしました。後で、メイン関数で特定の要素を含むベクトルを出力しようとすると、コンパイラは << オペランドに一致するものがないことを知らせ、std::ostream << Player が必要です。以下は、問題の原因となっている行です。
vector<Player> playerVec(6);
for (int i = 0; i < 6; i++) {
cout << playerVec[i];
}
実際には、Player オブジェクトをストリームに直接出力したくないので、<< をオーバーロードする必要はないと思います。
コンパイラが < の特定の定義を取得し、より一般的なケースを探す必要がないという点で、何が起こっているのかについてある程度の考えがあります。私の質問は、<< 演算子をオーバーロードして一般的な機能を返す必要があるか、それとももっと簡単な解決策があるかということです。
助けてくれてありがとう!