Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.31;
Скачать: CL | DM;

Вниз

Время жизни объекта.   Найти похожие ветки 

 
Дмитрий_С   (2008-07-13 19:15) [0]

Есть к примеру два интерфейса:

IIntrFirst = interface
 procedure JoinIntSecond(I: IUnknown);
end;

IIntrSecond = interface
 procedure JoinIntFirst(I: IUnknown);
end;

Реализция:
TIntrFirst = class(IIntrFirst)
 FSecond: IUnknown;
 procedure JoinIntSecond(I: IUnknown);
end;
procedure TIntrFirst.JoinIntSecond(I: IUnknown);
begin
 FSecond := I;
end;

TIntrSecond = class(IIntrFirst)
 FFirst: IUnknown;
 procedure JoinIntFirst(I: IUnknown);
end;
procedure TIntrFirst.JoinIntFirst(I: IUnknown);
begin
 FFirst:= I;
end;

Затем следующий код:
First.JoinIntSecond(Second);
Second.JoinIntSecond(First);
First := nil;
Second := nil;

После этого объекты освободятся?


 
Sergey Masloff   (2008-07-13 20:01) [1]

Ну в твоем случае вообще ни в каком случае не освободится поскольку ничего из IUnknown ты не реализовал а Пушкин за тебя это делать не будет ;-)

 Приведи более конкретный пример.


 
DrPass ©   (2008-07-13 20:09) [2]

...но если бы ты их унаследовал от TInterfacedObject...
А вообще, практика - критерий истины. Самому посмотреть, вызывается ли _AddRef при присваивании FFirst:= I, вызывается ли деструктор при First:= nil, намного полезнее и познавательнее, чем спрашивать на форуме



Страницы: 1 вся ветка

Текущий архив: 2008.08.31;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.014 c
15-1215188901
R1ka
2008-07-04 20:28
2008.08.31
Посоветуйте, пожалуйста книгу


15-1215755158
shlst
2008-07-11 09:45
2008.08.31
А чего это дедушки волнуются -


11-1192910752
Виктор007
2007-10-21 00:05
2008.08.31
Ошибка в TBitBtn при включенном GRAPHCTL_XPSTYLES


1-1197158281
Anton
2007-12-09 02:58
2008.08.31
Как использовать movups в Asm в Delphi ?


15-1215665966
Riply
2008-07-10 08:59
2008.08.31
Дефайны. Никак не соображу с чем их едят ?