Скажите, что у меня есть такая ситуация:
ITest = interface
procedure somethingHere();
end;
TImpl = class(TInterfacedObject, ITest)
procedure somethingHere();
end;
TImplSub = class(TImpl)
end;
Учитывая код выше, я могу использовать этот тип кода без утечки памяти, если я не использую оператор try-finally:
var a: ITest;
begin
a := TImpl.Create;
end;
Это то же самое для подкласса?
var a: ITest;
begin
a := TImplSub.Create;
end;
Я думаю, что поскольку TImplSub является подклассом TImpl, TImplSub наследует TInterfacedObject и ITest от отца. Вызывается ли вышеуказанный код?
Это может быть не связано, но как я могу проверить, не выше ли утечка кода?