Const错误

时间:2018-04-10 15:38:24

标签: c++ const

这是我的代码:

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] |

1 个答案:

答案 0 :(得分:2)

成员函数getBoardEl似乎是非const成员函数。

您肯定应该将其更改为const成员函数,因为名称暗示它是 get 函数而不是 set 函数。

这将解决编译器错误。

解决错误的另一种方法是直接使用成员变量,就像使用this一样。

if ( s.board[i][j] != this->board[i][j] ) {