У меня есть объект класса A
, созданный внутри метода. Этот метод также создает экземпляр объекта B
, который принимает в качестве аргумента конструктора только что созданный объект A
. B
должен стать владельцем объекта A
, но не может его изменить. Это означает, что A
должен быть удален при удалении B
, но в течение жизни B
он не может изменить A
.
В этом случае std::unique_ptr<const A>
в качестве переменной-члена B
- это правильный способ передать право собственности на A
(используя std::move
в конструкторе B
) и гарантировать, что он не будет изменен?