0
製作象棋遊戲,我不能重載==
操作符(認爲是問題,ofc如果我在數組中添加了正確的元素)。C++ overloading ==操作符示例
enum squerState{EMPTY, ROOK, KNIGHT, BISHOP, QUEEN, KING, PAWN};
class Board
{
public:
Board();
~Board();
friend bool operator==(const Board& lhs, const Board& rhs);
squerState stanjePolja;
squerColor bojaPolja;
pieceColor bojaFigurice;
Board* board[8][8];
};
//.ccp
Board* piece;
for(int x= 0; x < 8; x++)
{
for(int y=0; y < 8; y++)
{
piece->stanjePolja = squerState::ROOK;
piece->bojaPolja = squerColor::WHITE;
piece->bojaFigurice = pieceColor::BLACK_PIECE;
board[y][x] = piece;
}
}
//過載==
bool operator==(const Board& lhs, const Board& rhs)
{
return lhs.stanjePolja == rhs.stanjePolja;
}
//繪製測試板
void Board::drawBoard()
{
for (auto y = 0; y < 8; y++)
{
for (auto x = 0; x < 8; x++)
{
if (board[y][x] == squerState::ROOK)
{
std::cout << 'O';
}
else
std::cout << 'X';
}
std::cout << std::endl;
}
}
問題是當我試圖用ROOK's繪製測試板時。
if (board[y][x] == squerState::ROOK)
謝謝!
請發佈[MCVE]。 –