调用常量对象参数的方法

时间:2010-04-04 16:51:36

标签: c++ function reference constants

这是我的代码失败:

bool Table::win(const Card &card) {
   for (int i = 0; i < cards.size(); i++)
      if (card.getRank() == cards[i].getRank()) return true;

   return false;
}

错误信息是:将'const Card'作为'int Card :: getRank()的'this'参数传递,丢弃限定符。

当我获得该卡的副本并将代码更改为此时,它可以正常工作:

bool Table::win(const Card &card) {
   Card copyCard = card;

   for (int i = 0; i < cards.size(); i++)
      if (copyCard.getRank() == cards[i].getRank()) return true;

   return false;
}

还有其他办法吗?

1 个答案:

答案 0 :(得分:11)

getRank是一个const方法吗?它应该被声明为“:

int getRank( ) const;

假设返回类型为int。