【发布时间】:2013-05-31 21:59:57
【问题描述】:
我已经定义了一个 Player 类来做一些操作,所以我可以方便地重载一些基本的操作符。具体来说,我想使用
bool operator<(const Player& rhs) const {return (*this < rhs );}
不幸的是,这导致了问题。后来,当我尝试在 main 函数中输出包含特定元素的向量时,编译器让我知道
vector<Player> playerVec(6);
for (int i = 0; i < 6; i++) {
cout << playerVec[i];
}
请注意,我实际上并不想将任何 Player 对象直接输出到流,所以我认为我不需要重载
我对正在发生的事情有所了解,因为编译器采用了我对
感谢您提供的任何帮助!
【问题讨论】:
-
请给我们看代码。
-
这不是无限递归吗?
-
如果你想输出你的对象,你应该重载
-
operator<的存在完全与operator<<的不存在无关(根据您的编译器,这实际上是您的问题)。跨度> -
如果您不尝试将
Player对象输出到流中,那么此语句的意图是什么:cout << playerVec[i];?因为这正是试图将Player对象输出到流中的样子。
标签: c++ class operator-overloading