Зачем нужен unique_ptr?

unique_ptr выражает единоличное владение ресурсом и автоматически освобождает его при уничтожении владельца. Это помогает исключить утечки и неоднозначную ответственность за delete.

Короткий ответ

Что ответить на собеседовании

unique_ptr выражает единоличное владение ресурсом и автоматически освобождает его при уничтожении владельца. Это помогает исключить утечки и неоднозначную ответственность за delete.

Подробный разбор

Ответ с пояснениями

unique_ptr выражает единоличное владение ресурсом и автоматически освобождает его при уничтожении владельца. Это помогает исключить утечки и неоднозначную ответственность за delete.

Он не копируется, но перемещается: владение можно передать другой переменной или функции. get() даёт невладеющий сырой указатель, reset() заменяет или освобождает ресурс, release() отдаёт сырой указатель без освобождения и требует нового явного владельца.

Для объектов обычно используют make_unique. Custom deleter позволяет управлять не только new/delete, но и ресурсами C-API. unique_ptr не делает объект потокобезопасным и не защищает выданные сырые указатели от использования после уничтожения. Совместное владение, если оно действительно нужно, — другая модель.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее