shared_ptr нужен для совместного владения объектом: несколько владельцев продлевают его жизнь, а последний освобождает ресурс. Если владелец один, обычно достаточно unique_ptr.
Зачем нужен shared_ptr?
shared_ptr нужен для совместного владения объектом: несколько владельцев продлевают его жизнь, а последний освобождает ресурс. Если владелец один, обычно достаточно unique_ptr.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
shared_ptr нужен для совместного владения объектом: несколько владельцев продлевают его жизнь, а последний освобождает ресурс. Если владелец один, обычно достаточно unique_ptr.
Управляющий блок учитывает сильные ссылки и вызывает удаление объекта при исчезновении последней из них. weak_ptr позволяет наблюдать объект, не продлевая его жизнь, и помогает разрывать циклы владения.
Безопасность счётчика ссылок не делает сам объект потокобезопасным. Кроме того, shared_ptr следует выбирать по реальной модели владения, а не использовать повсюду вместо явного решения о времени жизни.