这是我的代码:
bool State::operator==(const State& s) const
{
bool flag=true;
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
if(s.GetboardEl(i,j)!=board[i][j]){
flag=false;
}
}
}
return flag;
}
getBoardE
l是State类中的一个函数,它从board(int [] [])返回一个元素。即使我在括号({)之前使用const,我也会收到此错误
:
错误:将'const State'作为'int State :: GetboardEl(int,int)'的'this'参数传递'丢弃限定符[-fpermissive] |
答案 0 :(得分:2)
成员函数getBoardEl
似乎是非const
成员函数。
您肯定应该将其更改为const
成员函数,因为名称暗示它是 get 函数而不是 set 函数。
这将解决编译器错误。
解决错误的另一种方法是直接使用成员变量,就像使用this
一样。
if ( s.board[i][j] != this->board[i][j] ) {