Назад к вопросам
СБЕР
Junior — Middle
92
Какими типами умных указателей вы использовали в своих проектах?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В C++ наиболее часто используются три типа умных указателей из стандартной библиотеки <memory>:
-
std::unique_ptr— обеспечивает уникальное владение объектом. Объект удаляется автоматически, когдаunique_ptrвыходит из области видимости. Нельзя копировать, только перемещать. -
std::shared_ptr— реализует подсчет ссылок для совместного владения объектом. Объект удаляется, когда последнийshared_ptrуничтожается. -
std::weak_ptr— слабая ссылка на объект, управляемыйshared_ptr. Не влияет на время жизни объекта, используется для предотвращения циклических зависимостей.
Пример использования:
#include <memory>
#include <iostream>
int main() {
std::unique_ptr<int> uptr = std::make_unique<int>(10);
std::cout << *uptr << std::endl;
std::shared_ptr<int> sptr1 = std::make_shared<int>(20);
std::shared_ptr<int> sptr2 = sptr1; // совместное владение
std::weak_ptr<int> wptr = sptr1; // слабая ссылка
return 0;
}
В проектах выбор умного указателя зависит от требований к владению и времени жизни объектов.