Ну, простое правило состоит в том, что каждая переменная, построенная с помощью new
, должна быть очищена на delete
.
Однако, в зависимости от вашей цели, вам, возможно, не нужно писать delete
самостоятельно.
Дома, изучая мрачные детали управления памятью, вы, вероятно, напишите столько же delete
, сколько и new
.
Профессионалы, однако никогда не используйте delete
в аппликативномкод (*).delete
- это кодовый запах.Это самый короткий способ утечки памяти при наличии исключений.Профессионалы используют RAII для безопасной работы с исключениями, а именно: умные указатели / умные контейнеры.
(*) в отличие от библиотечного кода, то есть кто-то написал этот shared_ptr
класс однажды.