Тем не менее, хорошей идеей в C ++ является использование умных объектов (вероятно, о чем вы говорите). Более или менее, класс, который содержит ссылку на объект и который обеспечивает освобождение указанного объекта при ударе деструктора и не добавляет много объектов для одновременного уничтожения в одном объекте (хотя результат один и тот же, он чище .)
то-то на ТАК, я наткнулсяэтот вопрос и один из комментариев к ответу с наибольшим количеством голосов (пятый комментарий к этому ответу с наибольшим количеством голосов) предполагает, чтоdelete p; p = NULL;
являетсяантипаттерн, Я должен признаться, что я использую это довольно часто, сравнивая это иногда \ большую часть времени с проверкойif (NULL != p)
. Тот человек Сам, кажется, предлагает это (см.destroy()
пример функции), поэтому я действительно смущен, почему это может быть такая страшная вещь, чтобы считатьсяантипаттерн, Я использую его по следующим причинам:
Обратите внимание, что я не задаю вопрос в контексте"это" указатель и давайте предположим, что мы не живем в идеальном мире C ++, и что унаследованный код существует, и его необходимо поддерживать, поэтому, пожалуйста, не предлагайте какие-либо умные указатели :).