【发布时间】:2019-08-21 05:18:19
【问题描述】:
我试图将一个对象传递给一个函数,但将其声明为 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);
}
错误: 在 player[0]->getMove 和 player[1]->getMove
处的“表达式预期”【问题讨论】:
-
这个错误在哪一行;它指向什么?您能否制作一个简化的代码版本,以便向我们展示整个内容?
-
对不起,你遗漏了太多。请阅读如何创建minimal reproducible example。它应该是我们可以修改而无需填写任何空白的东西。
-
虽然...我敢打赌
const board是问题所在。应该是board。 -
同样,不相关,但您可能应该遵循标准命名约定并将类型大写(例如,将
player重命名为Player) -
请包含完整的错误消息并提供minimal reproducible example,尤其是未声明
board,并且您在此处发布的main会产生您在问题中提到的错误以外的其他错误(缺少;和Board未定义)。其他人可以猜测,但不提供真实代码会导致难以回答,并将此问题对未来读者有用的可能性降低到接近于零
标签: c++ function object constants