![]() |
Re: eine Klasse als Rückgabewert??
Zitat:
Flare |
Re: eine Klasse als Rückgabewert??
Zitat:
|
Re: eine Klasse als Rückgabewert??
Zitat:
Ich habe das mit überladenen Funktionen gelöst, mit überladenen Operatoren wäre es natürlich um einiges komfortabler gewesen. Flare |
Re: eine Klasse als Rückgabewert??
... aber Funktionen/Procedure innerhalb von Records (also nicht als Prototype sondern als Implementation) ist mit den älteren Delphi's (kleiner D8) auch nicht möglich.
|
Re: eine Klasse als Rückgabewert??
Zitat:
Wo is'n da der Unterschied? Ist das dann eine Klasse, die man nicht instanzieren und freen muss? |
Re: eine Klasse als Rückgabewert??
Ok....kleines Beispiel:
Record mit überladenen Operatoren:
Delphi-Quellcode:
Die Verwendung sieht dann so aus:
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;
Delphi-Quellcode:
Das ganze funktioniert, wie bereits erwähnt, ab BDS2006 und mit den Turbos. Du brauchst also auch keine Klassen instanziieren und wieder freigeben.
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 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