首页 > 解决方案 > 在函数中传递 const 对象

问题描述

我试图将一个对象传递给一个函数,但将其声明为 const ,因此它只能被读取而不能被更改。抛出一个需要表达式的错误,我不确定为什么或如何修复它。

我有一个父类及其子类都具有相同的函数签名,但做不同的事情,他们都需要反对才能完成他们的任务。

我对 c++ 仍然很陌生,并且查看了该网站上的其他问题,但没有找到任何答案;

谢谢。

 class Player{
   char getMove(const Board& board){

     char answer ='a';
     // ...
     return answer;
   }
 };
 class Computer : public Player  {
   char getMove (const Board& board){
      char answer = 'a';
      // ...
      return answer;
   }
 };

函数调用

 int main(){ 

    Player* player[2];
    player[0] = new Player;
    player[1] = new Computer;
    char p0Move, p1Move

    p0Move = player[0]->getMove(const board); 
    p1Move = player[1]->getMove(const board);

 }

错误:播放器[0]->getMove 和播放器[1]->getMove 处的“预期表达式”

标签: c++functionobjectconstants

解决方案


这些行是问题所在:

p0Move = player[0]->getMove(const board);
p1Move = player[1]->getMove(const board);

你在这里不需要'const'。你想要的是:

p0Move = player[0]->getMove(board);
p1Move = player[1]->getMove(board);

推荐阅读