Delphi-Quellcode:
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;
In diesen Record lässt sich die Klasse reingeben und dort Operatoren nutzen.