Einzelnen Beitrag anzeigen

Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#16

Re: eine Klasse als Rückgabewert??

  Alt 6. Mär 2007, 06:10
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.
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat