Это субъективное / спорно.
На мой взгляд, существует два уровня утечек ресурса (память является одним из ресурсов, предоставляемых ОС): уровень ОС и уровень приложения. Обратите внимание, что имена являются собственными, и для них может быть лучше подходящий технический термин.
Утечка на уровне приложения перестает существовать после завершения работы приложения, поскольку ОС очищает беспорядок приложения. То есть как только приложение взорвано, угроза стабильности ОС исчезнет. На приличной операционной системе распределение памяти в приложениях может привести только к утечке на уровне приложения.
Утечка на уровне ОС не перестанет существовать после завершения работы приложения. Обычно в эту категорию (файлы) попадают некоторые другие ресурсы, но не память. Однако я не могу гарантировать, что не существует операционной системы / платформы, которая не очищает утечку памяти. По закону Мерфи такая платформа, вероятно, используется даже сегодня.
Поэтому, когда I говорит / пишет "утечка памяти", я имею в виду утечку на уровне приложения - любое выделение памяти, которое явно не удаляется APP. Каждое распределение, даже намеренное, попадает в категорию. Кроме того, обычно профилировщики выделения памяти и подобные инструменты будут жаловаться на ваши «преднамеренные утечки»,
Итак, да, в вашем коде есть утечка.
По моему мнению, делать утечки даже нарочно, даже когда вы уверены, что ОС освободит их, - плохая идея, потому что это поощряет небрежное кодирование, и однажды вы не сможете удалить класс, который выпускает что-то важное в своем деструкторе это не может быть очищено ОС автоматически. Учитывая количество мусора, оставшегося в реестре Windows и папке временных файлов на среднем ПК, многие программисты обычно используют эту технику для ресурсов, которые не очищаются операционной системой должным образом. Поэтому лучше всего избегать утечек.