Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > weak_ptr + shared_ptr |
Автор: bel_nikita 23.8.2006, 00:40 |
САБЖ |
Автор: Daevaorn 23.8.2006, 07:10 | ||
|
Автор: bel_nikita 23.8.2006, 09:23 | ||
Не совсем въехал.
в чем разница? |
Автор: Earnest 23.8.2006, 16:49 |
В том, что CBetterChild в твоем коде "держит" папу. Т.е. пока чайлд не удален, папа живет. А если у папы, в свою очередь, есть такая ссылка на чайлд, то получается петля, которую никто не разорвет: оба объекта держат друг друга и не удаляются, хотя других ссылок на них уже нет... week_ptr - это как раз для избежания такой циклической связи, когда 2 объекта должны ссылаться друг на друга. Один из объектов (более главный) хранит ссылку как shared_ptr, второй - как week_ptr. |