Чем обычный указатель отличается от умного указателя?

Обычный указатель хранит адрес и сам не освобождает ресурс. Умный указатель добавляет правила владения и автоматическое освобождение, но не устраняет все ошибки времени жизни.

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

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

Обычный указатель хранит адрес и сам не освобождает ресурс. Умный указатель добавляет правила владения и автоматическое освобождение, но не устраняет все ошибки времени жизни.

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

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

Обычный указатель хранит адрес и сам не освобождает ресурс. Умный указатель добавляет правила владения и автоматическое освобождение, но не устраняет все ошибки времени жизни.

T* подходит для невладеющего доступа, если срок жизни объекта гарантируется извне. unique_ptr владеет единолично, не копируется и передаёт владение перемещением. shared_ptr допускает копирование с разделением владения; объект освобождается после исчезновения последнего сильного владельца. weak_ptr позволяет наблюдать объект и разрывать циклы владения.

Умный указатель может иметь специальный deleter для C-ресурса. Его наличие не делает содержимое объекта потокобезопасным и не защищает от использования сырого указателя после уничтожения владельца. Сначала определяйте, кто владелец, затем выбирайте тип.

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

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

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

Подробнее