没有与这些操作数匹配的 "!=" 运算符:void != enum 这咋办?

问题描述:

没有与这些操作数匹配的 "!=" 运算符:void != enum

出错代码


Map        *m_map;

void setmap(int row, int col, int val);

void Map::setmap(int row,int col,int val)
{
    Map_Arr[row][col] = val;
}

enum{ map_null, map_frame, map_block };

bool Manage::_ismove(Point const * tempPoint, int rowOff, int colOff)
{
    for (int i = 0; i < Block_num; ++i)
    {
        if (m_map->setmap((tempPoint + i)->row + rowOff, (tempPoint + i)->col + colOff) != map_null)
        {
            return false;
        }
        return true;
    }   
}


void getmapval(int row, int col, int val);
返回值类型为什么是void

从名字上说,你函数既然是get应该返回map指定行列得值。你是不是get/set写反了。
Map_Arr[row][col] = val;
这个明显是set应该干得事情。