Мы используем файлы cookie
Мы используем файлы cookie для улучшения работы сайта и предоставления вам персонализированного опыта. Правила использования файлов cookie можно найти в нашей политике конфиденциальности
std::weak_ptr
используется для создания невладеющих ссылок на объект, управляемый std::shared_ptr
. Это позволяет избежать циклических зависимостей между объектами, которые владеют друг другом посредством shared_ptr
, тем самым предотвращая утечки памяти.
Её ключевые особенности:
weak_ptr
из shared_ptr
, он не увеличивает счетчик сильных ссылок. Счетчик слабых ссылок увеличивается, но он не влияет на время жизни объекта.weak_ptr
позволяет проверить, существует ли еще объект, на который он ссылается, с помощью метода expired()
или путем попытки преобразования в shared_ptr
с помощью метода lock()
. Метод lock()
возвращает shared_ptr
, если объект все еще жив, или пустой shared_ptr
в противном случае.weak_ptr
. Если два объекта владеют друг другом посредством shared_ptr
, счетчик ссылок никогда не опустится до нуля, и память, занимаемая объектами, не будет освобождена. Используя weak_ptr
для одной из ссылок, можно раstd::weak_ptr
используется для создания невладеющих ссылок на объект, управляемый std::shared_ptr
. Это позволяет избежать циклических зависимостей между объектами, которые владеют друг другом посредством shared_ptr
, тем самым предотвращая утечки памяти.
Её ключевые особенности:
weak_ptr
из shared_ptr
, он не увеличивает счетчик сильных ссылок. Счетчик слабых ссылок увеличивается, но он не влияет на время жизни объекта.weak_ptr
позволяет проверить, существует ли еще объект, на который он ссылается, с помощью метода expired()
или путем попытки преобразования в shared_ptr
с помощью метода lock()
. Метод lock()
возвращает shared_ptr
, если объект все еще жив, или пустой shared_ptr
в противном случае.weak_ptr
. Если два объекта владеют друг другом посредством shared_ptr
, счетчик ссылок никогда не опустится до нуля, и память, занимаемая объектами, не будет освобождена. Используя weak_ptr
для одной из ссылок, можно раЗарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.