#cpp
Можно ли в C++ сделать так: delete this ?
Ответы
Ответ 1
Можно, при соблюдении ряда условий. Именно - деструктор вы сделаете private. Объясню. Объект, который может самоуничтожиться, нежелательно создавать на стеке, в таком случае, деструктор может быть вызван дважды, что приведет к UB. @Harry верно заметил, что использовать умный указатель также нежелательно. Либо, при самоуничтожении надо как-то ставить его (этот указатель) в известность о своем уходе. @Abyx внес верное замечание о том, что скрывать надо деструктор, а не конструктор.Ответ 2
Да, можно. Но после delete this, this использовать уже нельзя.
Комментариев нет:
Отправить комментарий