Можно написать так:
TmyObject = class(TInterfacedObject, ImyInterface)
а можно так:
TmyObject = class(Tl3DataContainerWithoutIUnknown, ImyInterface)
И съэкономить 4-ре байта на КАЖДЫЙ экземпляр TmyObject.
Рассказать как Tl3DataContainerWithoutIUnknown устроен? Или "неинтересно"?
В общем вот так:
TmyObject = class(TInterfacedObject, ImyInterface)
а можно так:
TmyObject = class(Tl3DataContainerWithoutIUnknown, ImyInterface)
И съэкономить 4-ре байта на КАЖДЫЙ экземпляр TmyObject.
Рассказать как Tl3DataContainerWithoutIUnknown устроен? Или "неинтересно"?
В общем вот так:
interface _UnknownImpl_Parent_ = TObject; {$Include UnknownImpl.imp.pas} Tl3DataContainerWithoutIUnknown = class(_UnknownImpl_) // - тут ОСОЗНАННО не пишем IUnknown end;//Tl3DataContainerWithoutIUnknown implementation {$Include UnknownImpl.imp.pas} end.
Рассказать.
ОтветитьУдалитьhttp://18delphi.blogspot.ru/2013/04/iunknown.html
ОтветитьУдалитьinterface
_UnknownImpl_Parent_ = TObject;
{$Include UnknownImpl.imp.pas}
Tl3DataContainerWithoutIUnknown = class(_UnknownImpl_) // - тут ОСОЗНАННО не пишем IUnknown
end;//Tl3DataContainerWithoutIUnknown
immplementation
{$Include UnknownImpl.imp.pas}
end.