Forum: Algorithmen, Datenstrukturen und Klassendesign
by jaenicke,
11. Jan 2024
Das kommt schon hin, denn die Erzeugung einer Klasse beinhaltet ja mehr als nur die Speicherreservierung und enthält z.B. auch in TObject Daten, die auch im Speicher landen.
Bei der Verwendung hat eine Klasse dann wieder Vorteile bei der Geschwindigkeit, da diese als Referenz verwendet wird, während der Record aus der Liste kopiert wird. Das kannst du aber wie gesagt durch die Verwendung von...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by jaenicke,
10. Jan 2024
Ja, denn das sagt der Constraint aus. Dass der Typ als Elterntyp TClusterData haben muss.
Ich glaube aber nicht, dass du das brauchst. Da du im Konstruktor die vorgeschlagenen Berechnungsfunktionen übergibst, wäre es hier auch möglich, dass du den Constraint weglässt und einfach Records verwendest. Denn deine generische Klasse muss ja dann die Details des Typen gar nicht mehr kennen und eine...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by jaenicke,
9. Jan 2024
Eine mögliche Lösung sind hier Eventhandler, die diese Aktion durchführen. Dann muss man diese bei der Erstellung der Klasse zuweisen und kann dann in der Klasse diese aufrufen, um mit dem Typ eine Aktion durchzuführen, die man ansonsten nicht machen könnte.
Beispiel:
TBlub<T> = class
public
type
TOnCalcChecksum = function(AValue: T): Integer;
var
FValues:...