У меня небольшая проблема с интерфейсами. Здесь он находится в Псевдокод:Интерфейс «рекурсия» и подсчет ссылок
type
Interface1 = interface
end;
Interface2 = interface
end;
TParentClass = class(TInterfacedObject, Interface1)
private
fChild : Interface2;
public
procedure AddChild(aChild : Interface2);
end;
TChildClass = class(TInterfacedObject, Interface2)
private
fParent : Interface2;
public
constructor Create(aPArent : Interface1);
end;
Может ли кто-нибудь увидеть недостаток? Мне нужен ребенок, чтобы иметь ссылку на его родителя, но подсчет ссылок не работает в этой ситуации. Если я создам экземпляр ParentClass и добавлю его, то родительский класс никогда не будет выпущен. Я понимаю, почему. Как мне обойти это?
См. Http://stackoverflow.com/questions/487311/how-to-implement-reference-counted-objects-in-delphi#487387 для получения полного ответа на эту проблему круговых ссылок с интерфейсами Delphi. – 2012-02-01 17:28:15
Используйте настоящий GC вместо подсчета ссылок. – 2008-11-24 18:40:25