0

ポインタオブジェクトの2D配列をインスタンス化する方法を理解するのに苦労しています。これが私がそれをしている方法です:

Pieces* chessBoard[9][9];

実際のオブジェクトポインタに設定したい場合は、次のようにします。

chessBoard[1][1] = new Rook(p1Rook);

RookはPiecesクラスから属性を継承するクラスであり、p1Rookは「R」に設定されたchar変数です。このクラスは、特定のチェスの駒に固有のmove()やgetPiece()などの駒からの仮想関数(純粋仮想ではない)も実装します。ただし、プログラムをコンパイルすると、次のエラーが発生します。

ChessBoard.cpp:69: error: expected type-specifier before ‘Rook’
ChessBoard.cpp:69: error: cannot convert ‘int*’ to ‘Pieces*’ in assignment

誰かがこのかなり厄介な永続的なエラーを取り除くために私が何を変更すべきかを説明できますか?私はそれをお願い申し上げます。

4

1 に答える 1

1

コンパイラエラーは、コンパイラがaが何であるかをRook知らず、それがから派生したものであることを知らないことを示しPiecesます。行方不明のよう#includeです。

于 2012-04-15T05:34:12.323 に答える