unique_ptr
или shared_ptr
, если указатель обнулен (ptr = nullptr
) до того, как он вышел из области видимости или счетчик ссылок обнулился.shared_ptr
, если есть циклические ссылки между объектами, владеющими shared_ptr
, что предотвращает обнуление счетчика ссылок. В этом случае помогает использование weak_ptr
для одной из сторон цикла.shared_ptr
в функцию или метод по неконстантной ссылке (shared_ptr&
) и последующем изменении указателя внутри этой функции/метода (например, присвоение nullptr
), владение может быть утрачено, но объект может не быть удален, если существуют другие shared_ptr
на этот объект.shared_ptr
или unique_ptr
, если деструктор объекта бросает исключение. В этом случае поведение неопределено.unique_ptr
или shared_ptr
, который не выполняет операцию delete
для объекта.Пример циклической ссылки с `shared_
unique_ptr
или shared_ptr
, если указатель обнулен (ptr = nullptr
) до того, как он вышел из области видимости или счетчик ссылок обнулился.shared_ptr
, если есть циклические ссылки между объектами, владеющими shared_ptr
, что предотвращает обнуление счетчика ссылок. В этом случае помогает использование weak_ptr
для одной из сторон цикла.shared_ptr
в функцию или метод по неконстантной ссылке (shared_ptr&
) и последующем изменении указателя внутри этой функции/метода (например, присвоение nullptr
), владение может быть утрачено, но объект может не быть удален, если существуют другие shared_ptr
на этот объект.shared_ptr
или unique_ptr
, если деструктор объекта бросает исключение. В этом случае поведение неопределено.unique_ptr
или shared_ptr
, который не выполняет операцию delete
для объекта.Пример циклической ссылки с `shared_
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.