C++ 重写运算符在c+中无效+;

C++ 重写运算符在c+中无效+;,c++,overriding,operator-keyword,C++,Overriding,Operator Keyword,我编写了两个重写运算符(尝试将其转换为枚举类-然后它将是强类型的,而不是强制转换为int ... enum class Suit {CLUBS,SPADES,HEARTS,DIAMONDS}; ... ostream& operator<<(ostream& os, Card::Suit& s) { switch (s) { case Card::Suit::CLUBS: os << "Clubs"; brea

我编写了两个重写运算符(尝试将其转换为枚举类-然后它将是强类型的,而不是强制转换为int

...
enum class Suit {CLUBS,SPADES,HEARTS,DIAMONDS};
...

ostream& operator<<(ostream& os, Card::Suit& s) {
  switch (s) {
    case Card::Suit::CLUBS:
      os << "Clubs";
      break;
...
。。。
enum类套装{梅花、黑桃、红桃、钻石};
...

ostream&operator尝试将其转换为enum类-然后它将是强类型的,而不是强制转换为int

...
enum class Suit {CLUBS,SPADES,HEARTS,DIAMONDS};
...

ostream& operator<<(ostream& os, Card::Suit& s) {
  switch (s) {
    case Card::Suit::CLUBS:
      os << "Clubs";
      break;
...
。。。
enum类套装{梅花、黑桃、红桃、钻石};
...

ostream&Operator看看这个问题,我想它可能会帮助你:@SamuelO'Malley谢谢你的回答,但我认为它们不是同一个问题。我定义了Operator看看这个问题,我想它可能会帮助你:@SamuelO'Malley谢谢你的回答,但我认为它们不是同一个问题。我定义了Operator你是说添加t卡类之前的枚举类。它无法编译,错误:需要标识符或{枚举类{梅花、黑桃、红桃、钻石};顺便说一句,当我使用其他编译器时,它现在可以编译了,但结果仍然是一样的。对不起……我不是想把它从卡中拉出来,只是想用一个枚举类而不是枚举。将
class
放在
enum
suit
之间。对不起,但结果仍然是一样的。嗯……我刚刚在g++4.8.1上测试了它,效果如期d、 同样,它在普通枚举中也能正常工作。您的意思是在卡片类之前添加此枚举类。它无法编译,错误:预期标识符或“{”枚举类适合{梅花、黑桃、红桃、钻石};顺便说一句,当我使用其他编译器时,它现在可以编译了,但结果仍然是一样的。对不起……我不是想把它从卡中拉出来,只是想用一个枚举类而不是枚举。将
class
放在
enum
suit
之间。对不起,但结果仍然是一样的。嗯……我刚刚在g++4.8.1上测试了它,效果如期d、 同样,它在普通枚举中也能正常工作。