对此有错误

Const error with this

本文关键字:有错误      更新时间:2023-10-16

这是我的代码:

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 State"作为"int State::GetboardEl(int, int("的"this"参数传递会丢弃限定符 [-permissive]|

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

您绝对应该将其更改为 const 成员函数,因为名称暗示它是一个 get 函数而不是集合函数。

这将解决编译器错误。

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

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