среда, 30 октября 2013 г.

Про "экономию на спичках"

Можно написать так:

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.

2 комментария:

  1. 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.

    ОтветитьУдалить