Можно написать так:
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.