Ok....kleines Beispiel:
Record mit überladenen Operatoren:
Delphi-Quellcode:
Type
TVector = record
x,y,z : integer
class operator Add(a,b:TVector):TVector;
end;
:
Implementation
Class Operator TVector.add(a,b:TVector):TVector;
begin
result.x := a.x+b.x;
result.y := a.y+b.y;
result.z := a.z+b.z;
end;
Die Verwendung sieht dann so aus:
Delphi-Quellcode:
procedure TForm1.Button1click(Sender:TObject);
var
v1,v2,v3 : TVector;
begin
//Einfach mal werte eintrag;
v1.x := 10;
v1.y := 20;
v1.z := 30;
v2.x := 5;
v2.y := 50;
v2.z := 33;
v3 := v1+v2;
end;
Das ganze funktioniert, wie bereits erwähnt, ab BDS2006 und mit den Turbos. Du brauchst also auch keine Klassen instanziieren und wieder freigeben.