私はそれ自身を破壊する必要があるオブジェクトを持っています。オブジェクトは自分自身を破壊できますか?
できますか?
この例は間違っていますか?
void Pawn::specialMoves(Coordinate const& from, Coordinate const& to, int passant) { /*...*/ m_board->replace(to, new Queen(m_colour));//replace pawn by queen } void Board::replace(Coordinate const &to, Piece* newPiece) { delete tile[to.x()][to.y()]; tile[to.x()][to.y()] = newPiece; }
ここではどのオブジェクトがそれを破壊していますか?FTRであれば、それを破壊することは 'delete this;'または 'this->〜T();'( 'T'はその型です)のいずれかです。どちらも有効ですが、正しく使用するには多くの注意が必要です。 –
あなたの例では、自分自身を破壊するものは何も表示されません。 –
Pawnはそれ自体を削除します。私は一度 'm_board-> replace(to、new Queen(m_colour));'が関数voidと呼ばれていたと思います。Pawn :: specialMoves(...) '完了できません。 ' – danjjl