Здравствуйте, MasterZiv, Вы писали:
MZ>Тоже хотел. Поискал. Нашел вот это
Но есть одно но. Там абстрактно, про reference counting и (в последней ссылке) про язык явно со сборкой мусора.
В сборке мусора это актуально, так как любая ссылка может ознакать как владение, так и просто ссылку, в Си++ это можно указать явно, и тогда проблем не будет.
T — содержание объекта, т.е. владение с постоянным временем жизни (относительно владельца)
auto_ptr<T> — владение объектом с контролем времени жизни
shared_ptr<T> — разделяемое владение объектом (несколько хозяев)
T * — ссылка (указатель, если угодно) на объект, т.е. использование его, но не владение
weak_ptr<T> — аналогично, но с возможностью проверить, жив ли объект
В языках, где это указать невозможно, возникает проблема, программа должна сама умудряться разруливать все эти ситуации.
Вот меня и интересует, есть ли пример, где циклические ссылки будут обязательно.
Т.е. я не могу придумать примера, где два объекта владели бы друг другом.
Здравствуйте, VoidEx, Вы писали:
VE>Вот меня и интересует, есть ли пример, где циклические ссылки будут обязательно. VE>Т.е. я не могу придумать примера, где два объекта владели бы друг другом.
Типичная ситуация при Callback, например connection points в COM.