![]() |
Re: "variable" pointer -ist das möglich?
hmmm... :gruebel: Siehst du da auch nur ein Feld? Ich nicht. :P
Delphi-Quellcode:
... und Methoden kosten dich doch nur den Zeiger auf die VMT.
TObject = class
constructor Create; procedure Free; class function InitInstance(Instance: Pointer): TObject; procedure CleanupInstance; function ClassType: TClass; class function ClassName: ShortString; class function ClassNameIs(const Name: string): Boolean; class function ClassParent: TClass; class function ClassInfo: Pointer; class function InstanceSize: Longint; class function InheritsFrom(AClass: TClass): Boolean; class function MethodAddress(const Name: ShortString): Pointer; class function MethodName(Address: Pointer): ShortString; function FieldAddress(const Name: ShortString): Pointer; function GetInterface(const IID: TGUID; out Obj): Boolean; class function GetInterfaceEntry(const IID: TGUID): PInterfaceEntry; class function GetInterfaceTable: PInterfaceTable; function SafeCallException(ExceptObject: TObject; ExceptAddr: Pointer): HResult; virtual; procedure AfterConstruction; virtual; procedure BeforeDestruction; virtual; procedure Dispatch(var Message); virtual; procedure DefaultHandler(var Message); virtual; class function NewInstance: TObject; virtual; procedure FreeInstance; virtual; destructor Destroy; virtual; end; Auch wenn es hier nicht um's Für & Wider geht: Das Argument ist einfach nicht richtig. ;) Eine Klasseninstanz kostet dich genau 4Byte mehr als ein record, der die gleichen Informationen halten soll. Das ist IMHO ein mehr als faires Geschäft. ;) Das soll jetzt auch nicht ausarten... Ich wollte ihm nur den Tip geben, schließlich wollte er seinen Code aufräumen. ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz