Forum: Algorithmen, Datenstrukturen und Klassendesign
by DeddyH,
11. Jul 2020
Vergiss das Free einfach im Zusammenhang mit referenzgezählten Interfaces. Die Instanz wird ganz automatisch freigegeben, wenn der letzte Verweis auf sie ungültig wird, sei es, dass die Variable aus dem Scope läuft oder explizit auf nil gesetzt wird.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DeddyH,
10. Jul 2020
Benötigst Du denn wirklich mehrere Instanzen? Was genau hast Du eigentlich vor?
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DeddyH,
10. Jul 2020
Ich würde ohne Grund nicht an den Instanzen herumspielen, sondern nur an den enthaltenen Daten.
procedure Tuwas(sonst Src, Dest: TSomeList);
begin
// Mit den Daten der Listen arbeiten
end;
procedure TuAlles;
var
List1: TSomeList;
List2: TSomeList;
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DeddyH,
10. Jul 2020
Wo soll das Funktionsergebnis (also die Instanz) denn herkommen, wenn sie nicht innerhalb der Funktion erzeugt wird? Was spricht denn dagegen, beide Instanzen in der aufrufenden Routine zu erzeugen und als Konstanten-Parameter zu übergeben?
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DeddyH,
10. Jul 2020
Das stimmt so nicht. Das Objekt (genauer: die Instanz) selbst wird ohne Angabe von const, var oder out als Call by Value übergeben. Wenn man ein Objekt als Konstantenparameter übergibt, kann man ihm keine andere Instanz zuweisen, aber seine Eigenschaften ändern. Ich würde aber in Routinen ohne triftigen Grund keine Instanzen erzeugen, da man sonst sehr schnell durcheinanderkommt und sich entweder...