![]() |
Funktionen mit Eigener Klasse als Rückgabewert...
Mal so eine ganz dumme noob Frage ^^
Wenn ich eine Funktion habe, welche eine eigene Klasse(von TObject ) zurückgibt, muss ich dann dieses Object in der Funktion erstellen mit Create? Muß ich das zurückgegebene Object außerhalb dann zerstören? Bin diesbezüglich gerade ein klein wenig verwirrt :nerd: Bye |
Re: Funktionen mit Eigener Klasse als Rückgabewert...
Ja.
|
Re: Funktionen mit Eigener Klasse als Rückgabewert...
Kommt drauf an, man könnte auch ein Funktion schreiben die ein Objekt als Parameter übernimmt bearbeitet (z.B. mit Daten füllt) und dann als Funktionsergebnis wieder zurück gibt. Also etwa
Delphi-Quellcode:
Damit kann man das Objekt ausserhalb der Funktion erstellen (z.B. auf der gleichen Ebene auf der es wieder entsorgt werden soll).
function MyFoo(aObject: TObject):TObject;
Begin if not assigend(aObject) then Begin ---> Fehlerabbruch end else begin result := aObject; ---> Result mit Daten füllen usw. end; end; Die 2. Option wäre etwa so:
Delphi-Quellcode:
Ist sieht natürlich eleganter aus, verbirgt aber den Aufruf des Konstruktor.
function MyFoo:TObject;
Begin try Result := TObject.Create; ---> Result mit Daten füllen usw. except ---> Fehlerbehandlung end; end; Der Königsweg aber wäre meines Erachtens, den Konstruktor der Klasse so zu erweitern, dass er die Aufgaben von "MyFoo" mit erledigt. Damit würde der Aufruf von MyFoo zu Gunsten des Konstruktors entfallen und alles ist klar. [edit=Luckie]Delphi-Tags eingefügt. Mfg, Luckie[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:46 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 by Thomas Breitkreuz