Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpOpSpInr 128 of 150 menu
◀ ▶

Введение в умные указатели в C++

Объект в куче с обычным указателем удаляют вручную, командой delete.

Умный указатель хранит тот же адрес и при своем уничтожении сам удаляет объект. Если забыть delete в одной ветке if или перед ранним return, объект не останется в памяти: указатель удалит его сам. Запишем класс User:

#include <iostream> #include <memory> #include <string> class User { public: std::string name; User(std::string name) : name(name) {} };

Создадим его в куче внутри указателя unique_ptr и выведем имя через стрелку. Объект исчезнет, когда переменная owner закончит жизнь:

int main() { std::unique_ptr<User> owner(new User("ann")); std::cout << owner->name << "\n"; return 0; }
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить