get у std::unique_ptr возвращает адрес управляемого объекта. Вызов не освобождает память и не обнуляет умный указатель: владение остается у unique_ptr.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpUpGt 350 of 696 menu
◀ ▶

Доступ к адресу через get в C++

Метод get у std::unique_ptr возвращает адрес управляемого объекта.

Вызов не освобождает память и не обнуляет умный указатель: владение остается у unique_ptr. Так удобно передать адрес в API, который ждет обычный указатель, но не берет на себя delete. Запишем значение и сравним адрес с результатом get:

#include <iostream> #include <memory> std::unique_ptr<int> cell = std::make_unique<int>(15); int* view = cell.get(); std::cout << (*view == *cell.get()) << "\n";

Создайте std::unique_ptr<int> со значением 4. Сохраните адрес через get в переменную int* и выведите разыменованное значение.

Объявите std::unique_ptr<int> с числом 0. Через get запишите в объект 11 и выведите значение через оператор разыменования у unique_ptr.

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