суббота, 27 апреля 2013 г.

Понятно, что тут есть проблема?


constructor TA.Create;
begin
 inherited;
 FB := TB.Create;
 DoSomethingThatCanRaise;
 FC := TC.Create;
end;
 
destructor TA.Destroy;
begin
 FreeAndNil(FB);
 FC.CallSomeMethod;
 FreeAndNil(FC);
 inherited;
end;


Ведь если DoSomethingThatCanRaise - обломится. То вызовется деструктор. Это гарантирует компилятор. А FC - не СОЗДАН. Ну и на FC.CallSomeMethod - огребём AV.

Комментариев нет:

Отправить комментарий