![]() |
EMB DCE 12 - class und record zusammen, um Operatoren gemeinsam zu nutzen ?
Hallo,
ich habe das ja schonmal angesprochen, konnte aber noch keine richtige Lösung finden. Ich hatte auf das Problem mit den "record" und "class" operatoren geschrieben. Leider kam zu diesen Beitrag nur ein kleiner Tipp, das ich "class" und "record" gemeinsam nutzen kann, aber mir fehlt da jetzt der Einstieg. Wenn mir jemand ein sehr kleines Beispiel zeigen könnte, bin ich schonmal zufrieden. Also: Ich würde gerne die Operatoren auch in Klassen verwenden wollen. Danke für Eure Hilfen. |
AW: EMB DCE 12 - class und record zusammen, um Operatoren gemeinsam zu nutzen ?
Operatoren gibt es (aktuell) nur bei Records. (da für Objekte eine automatische Speicherverwaltung nötig wäre)
Record-Opertatoren werden syntaktisch als Class-Functions umgesetzt. Ja, Objekte in Records kann man inzwischen nutzen, da sich hier via Custom-Managed-Records eine Speicherverwaltung selbst umsetzen lässt. ![]() ![]() ![]() ![]() ![]() |
AW: EMB DCE 12 - class und record zusammen, um Operatoren gemeinsam zu nutzen ?
Delphi-Quellcode:
In diesen Record lässt sich die Klasse reingeben und dort Operatoren nutzen.
type
TMyClass = class private FRefCount: Integer; public ... procedure Test; end; TRecordForMyClass = record private FClass: TMyClass; public // Speicherverwaltung des Records class operator Initialize(out Dest: TRecordForMyClass); class operator Finalize(var Dest: TRecordForMyClass); class operator Assign(var Dest: TRecordForMyClass; const [ref] Src: TRecordForMyClass); // Zuweisungen und Casts (implizit oder explizit) zwischen Record und Klasse oder andersrum class operator Implicit(a: TMyClass): TRecordForMyClass; class operator Implicit(a: TRecordForMyClass): TMyClass; ... // Property&Methoden hier nochmal deklarieren und durchreichen, damit zum Aufruf die Klasse nicht erst rausgeholt werden muß. procedure Test; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:12 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