Ja, du kannst si in dieser add-funktion erstellen und später wieder freigen, wenn du sie in der aufrufenden funktion nicht mehr benötigst.
Wie dir ja auch aufgefallen ist, führt dies leicht zu Fehlern. Eine Alternative wäre die Klasse nicht als Funktionsergebnis zurückzugeben sondern sie als Parameter zu übergeben:
Delphi-Quellcode:
procedure add(v:vector;const to_add:vector);
begin
to_add.dosomething;
end;
...
my_vector:=Tvector.create;
add(v,my_vector);
...
my_vector.free;
Damit hast du dann die Kontroll über den Speicher der Klasse an einer Stelle. aber sehe ies nur als Alternative. Es ist nicht immer möglich.
Roter Kaste: Ich habe mehr geschrieben
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.