Sobes.tech
Назад к вопросам
Junior — Middle
87

Можешь объяснить, что такое умные указатели в C++ и как они работают?

Компании, где спрашивали
Samsung Research CenterSamsung Research Center
КасперскийКасперский
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
    // память освободится автоматически при выходе из области видимости
}