Как избежать утечки памяти с shared_ptr?

Показ скрытых окон

  • ctrl + высокий звук + L + проводник Решения

  • ctrl + высокий звук + S + проводник Сервера

  • ctrl + высокий звук + O + Вывод

  • ctrl + высокий звук + X + Панель инструментов

  • ctrl + сдвиг + W , 1 + Часы

  • ctrl + \, E + Ошибочный список

  • ctrl + сдвиг + C + Представление класса

мне нравится использовать всю мою экранную недвижимость для кода и скрывать все остальное. Эти ярлыки сохраняют эти окна удобными, когда мне нужны они, таким образом, они могут быть вне пути остальной частью времени.

23
задан jww 25 February 2014 в 15:08
поделиться

1 ответ

Если у вас есть такие циклические ссылки, один объект должен содержать weak_ptr для другого, а не shared_ptr .

From ] shared_ptr введение :

Поскольку реализация использует подсчет ссылок, циклы экземпляров shared_ptr не будут восстановлены. Например, если main () содержит shared_ptr до A , который прямо или косвенно содержит shared_ptr обратно в A , Счетчик использования A будет равен 2. Уничтожение исходного shared_ptr приведет к тому, что A будет зависать со счетчиком использования 1. Используйте weak_ptr для «разрыва циклов»

Спасибо, Глен, за ссылку.

52
ответ дан 29 November 2019 в 01:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: