我已经定义了一个 Player 类来做一些操作,所以我可以方便地重载一些基本的操作符。具体来说,我想使用 < 来比较 Player 对象。因此,我在课堂上有以下内容:
bool operator<(const Player& rhs) const {return (*this < rhs );}
不幸的是,这导致了问题。后来,当我尝试在 main 函数中输出包含特定元素的向量时,编译器让我知道 << 操作数不匹配,并且它需要 std::ostream << Player。以下是导致问题的行:
vector<Player> playerVec(6);
for (int i = 0; i < 6; i++) {
cout << playerVec[i];
}
请注意,我实际上并不想将任何 Player 对象直接输出到流中,所以我认为我不需要重载 <<。
我对正在发生的事情有一些了解,因为编译器采用了我对 < 的特定定义,然后不再费心寻找更一般的情况。我的问题是,我现在是否需要重载 << 运算符以返回其一般功能,还是有更简单的解决方案?
感谢您提供的任何帮助!