Ho un oggetto che deve distruggere se stesso.Un oggetto può distruggere se stesso?
Si può fare?
L'esempio è errato?
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; }
Quale oggetto si sta distruggendo qui?FTR, distruggendo se stesso, potrebbe essere "delete this;" o "this-> ~ T();" (con 'T' come tipo). Entrambi sono validi ma richiedono molta attenzione per essere usati correttamente. –
Non vedo nulla che si stia distruggendo nel tuo esempio. –
Il pedone si cancella da solo. Immagino che una volta 'm_board-> sostituisci (to, new Queen (m_colour));' è stato chiamato function void Pawn :: specialMoves (...) 'non può finire' – danjjl