Re[5]: А зачем он вообще нужен в С++
От: VoidEx  
Дата: 02.11.07 20:13
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>Тоже хотел. Поискал. Нашел вот это


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

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

Вот меня и интересует, есть ли пример, где циклические ссылки будут обязательно.
Т.е. я не могу придумать примера, где два объекта владели бы друг другом.
Re[6]: А зачем он вообще нужен в С++
От: VoidEx  
Дата: 02.11.07 20:15
Оценка:
Собственно, поэтому считаю, что ГЦ решает 2 задачи, третью он сам себе вводит и сам ее решает
Хотя нет, вру, в Дельфи именно 3, да
Re[6]: А зачем он вообще нужен в С++
От: superlexx  
Дата: 02.11.07 20:28
Оценка:
Здравствуйте, VoidEx, Вы писали:

VE>Вот меня и интересует, есть ли пример, где циклические ссылки будут обязательно.

VE>Т.е. я не могу придумать примера, где два объекта владели бы друг другом.

Типичная ситуация при Callback, например connection points в COM.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.