The answer к this question относится к this page, который говорит, что, для того, чтобы delete this;
правильно вести себя:Почему вызывается printf («% p», это); после удаления этого; незаконный?
Вы должны быть абсолютно 100% абсолютно уверен, что никто даже не коснется этого сам указатель после удаления этой строки. Другими словами, вы не должны его изучать, сравнивать с другим указателем, сравнивать его с
NULL
, печатать, отливать, делать с ним что-либо.
Я не понимаю, почему прикасаясь сам указатель вызывает проблемы.
Не мог бы кто-нибудь объяснить это мне?
is 'printf ("% p ", some_pointer); 'даже определено, когда' some_pointer' имеет тип, отличный от 'void * ', и нет никакого перевода? –
@BenVoigt: Хм, если это вас беспокоит, просто притворись, что я написал «this == this» вместо этого. Во всяком случае, это не вопрос. – Mehrdad
@ user93353: Спасибо, что нашли это! [Ответ Стива] (http://stackoverflow.com/a/1866693/541686) отвечает на мой вопрос! – Mehrdad