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

Единственный указатель unique_ptr в C++

Указатель unique_ptr владеет ровно одним объектом в куче и удаляет его, когда сам указатель уничтожается.

Оператор new здесь остается только внутри конструктора unique_ptr: адрес сразу попадает под управление обертки. Доступ к методам дает оператор ->, как у обычного указателя. Запишем класс с заметным деструктором:

#include <iostream> #include <memory> class Probe { public: ~Probe() { std::cout << "probe cleared\n"; } void ping() { std::cout << "ping\n"; } };

Создадим объект, вызовем метод и дождемся удаления в конце жизни указателя:

int main() { std::unique_ptr<Probe> holder(new Probe()); holder->ping(); return 0; }

Сделайте класс Beacon с методом, который печатает слово ready, и деструктором со словом off. Создайте объект в куче так, чтобы он удалился при выходе из main, вызовите метод через стрелку и убедитесь, что off появляется после работы программы.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить