我正在编写一个游戏,其中有 2 个玩家,“BLACK”和“WHITE”。
我有以下枚举类:
enum class PlayerType
{
BLACK, WHITE
};
我想为这个类写一个 ostream operator<<。这是我的尝试:
std::ostream& operator<<(std::ostream& os, const PlayerType& pt)
{
if(pt == PlayerType::BLACK)
os << "Black";
return os;
}
但是我收到以下编译器错误:
operator<< must take exactly 1 argument
我认为问题在于我正在嵌套枚举类,并且 operator<< 在另一个类中;class Player
.
如果不从此类中删除枚举,我能做些什么吗?