std::weak_ptr - Как и Когда использовать | c++ smart pointers

preview_player
Показать описание


Складывается впечатление, что все, кто начинает изучать с++ и доходит до умных указателей, старательно обходят std::weak_ptr стороной и упорно делают вид, что он не нужен, и, следовательно знать, как и когда им пользоваться, вообще не обязательно.

Что ж, пора закрыть этот пробел и реабилитировать std::weak_ptr, надеюсь, что после просмотра видео, std::weak_ptr перестанет для вас быть какой-то непонятной, загадочной магической штуковиной.

Так что – приятного просмотра!

00:00 - Начало
00:57 - Проблема shared_ptr с перекрестными ссылками
05:00 - Принцип работы std::weak_ptr
07:29 - Инициализация std::weak_ptr
08:20 - Как работать с std::weak_ptr
09:20 - Проверка на "просроченность"
11:01 - Как получить доступ к объекту
13:53 - Типовой пример использования std::weak_ptr
17:28 - Типовой пример "Наблюдатель" + std::weak_ptr
22:29 - Доп. инфа про std::weak_ptr
24:09 - Заключение
Рекомендации по теме
Комментарии
Автор

Очень доходчиво объясняете, много примеров. Приятный голос. Огромное спасибо за ролик!

qt
Автор

Раньше я просто смотрел как годный тутор, но это уже шедевр какой-то!

toxic_champ
Автор

Да, отличное видео, в конце про make_shared немного неточно, но уже в другом комментарии объяснили. Мне кажется, немного не хватило явного объяснения мотивации для использования weak_ptr вместо голого указателя (ведь голый указатель отлично помогает ссылаться, а не владеть). Дело-то как раз в том, что через weak_ptr можно контролировать время жизни объекта

daniilivanik
Автор

Шикарно. Мне как раз это надо для подготовки к собесу. Всё понятно, речь чёткая и внятная, звук четкий, Моё почтение

HansVeidenkorb
Автор

Спасибо за отличное объяснение. Немного неточно с make_shared и weak_ptr. Деструктор объекта будет вызван в момент когда закончатся сильные ссылки, но память под объектом освободится вместе с управляющим блоком когда закончатся слабые ссылки.

arturapshev
Автор

Ну как это не смог придумать пример. Дерево GUI элементов, где каждый элемент хранит список указателей на дочерние элементы и так же хранит умный указатель на родителя. Циклические ссылки на ровном месте.

ИнякинАлександр
Автор

Отлично, как обычно. Ждём видос теперь где применяя все знания, напишем приложение, например, to do или ещё что-нибудь интересное.

_sergeevich
Автор

Камера трясется. А так всё круто! Спасибо

jalomic
Автор

Контент просто топ, огромное спасибо)

donlinoleum
Автор

Трубаа.
Давайте вместо того, чтобы программист следил за своими указателями, сделаем 3 умных указателя, которые тоже могут зануляться, просрачиваться, дублироваться, добавим к ним 2 скрытых счётчика ссылок на объект и мудрёную логику уничтожения. Отличный план!
За видео спасибо!

konstantinz
Автор

Зачем изобретать велосипед, реализуйте обычный двусвязный список, где ссылка на parent - это слабый указатель. Словите много фана, начиная от вылетов при рекурсии деструкторов и заканчивая атомиками на изменения головы и хвоста.

denis_iii
Автор

снизь шарпинг, картинка слишком резкая, бьет по глазам. а материал полезный

ryzen
Автор

По настоящему лучше не пишите auto, введу того что проект будет дольше собираться, оптимизаций так таковых вы с этого auto не получите ваще, просто для удобства больше

mikrikvude
visit shbcf.ru