0
每當我嘗試使用findPieceAt函數給我一個位置在數組中時,我得到一個錯誤。在下面的代碼中。錯誤比較if語句中的枚舉類型
if (findPieceAt(newRow, newCol) != -1)
{
if (chessPieces[findPieceAt(newRow, newCol)].getColor == turn) //line with error
{
cout << "invalid attack on same color" << endl;
return false;
}
else
{
if (chessPieces[findPieceAt(oldRow, oldCol)].captureMove(newRow, newCol) == true);
{
chessPieces[findPieceAt(newRow, newCol)].isCaptured;
cout << "capture of " << chessPieces[findPieceAt(newRow, newCol)].getFullName << " is successful" << endl;
return true;
}
}
}
findPieceAt函數如下所示。
int Chess::findPieceAt(int row, int col)
{
for (int index = 0; index < NUM_CHESS_PIECES; index++)
{
if (chessPieces[index].isAt(row, col) == true)
{
return index;
}
else
{
return -1;
}
}
}
的getColor功能如下所示。
Color ChessPiece::getColor()
{
return color;
}
又低於
void Chess::gameLoop(istream & input)
{
Color turn = Black; // Black will start the game
chessPieces陣列限定
private:
static const int NUM_ROWS = 8, NUM_COLS = 8;
static const int NUM_CHESS_PIECES = 32;
ChessPiece chessPieces[NUM_CHESS_PIECES];
};
了用來
enum ChessPieceType { Pawn, Rook, Knight, Bishop, Queen, King };
enum Color { White, Black };
*你得到了什麼*錯誤? –
「錯誤C3867:'ChessPiece :: getColor':函數調用缺少參數列表;使用'&ChessPiece :: getColor'創建指向成員的指針」我還收到另一個錯誤「錯誤C2678:binary'==':找不到操作符它需要一個'overloaded-function'類型的左手操作數(或者沒有可接受的轉換)「 – babymama9000
如果你再次讀到這個錯誤信息,你認爲它可能是什麼?特別是如果你看看錯誤所在的那一行。 –