Назад к вопросам
Samsung Research Center
Касперский
Junior — Middle
87
Можешь объяснить, что такое умные указатели в C++ и как они работают?
Компании, где спрашивали
Baum
Ответ от нейросети
sobes.tech AI
Умные указатели в C++ — это специальные классы-обертки, которые управляют временем жизни динамически выделенных объектов, автоматически освобождая память, когда объект больше не нужен. Они помогают избежать утечек памяти и ошибок, связанных с неправильным управлением указателями.
Основные типы умных указателей:
std::unique_ptr— владеет объектом эксклюзивно, нельзя копировать, только перемещать. Освобождает память при уничтожении.std::shared_ptr— разделяет владение объектом между несколькими указателями. Объект удаляется, когда последнийshared_ptrуничтожается.std::weak_ptr— слабая ссылка на объект, управляемыйshared_ptr, не влияет на счетчик ссылок, используется для предотвращения циклических зависимостей.
Пример использования std::unique_ptr:
#include <memory>
#include <iostream>
int main() {
std::unique_ptr<int> ptr = std::make_unique<int>(42);
std::cout << *ptr << std::endl; // выводит 42
// память освободится автоматически при выходе из области видимости
}