Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
Delphi 11 Alexandria
|
AW: Generic class <T> , wie füge ich konkrete Daten ein ?
10. Jan 2024, 06:52
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 Einschränkung ist somit nicht notwendig. Die ergibt sich dann daraus, dass der Nutzer der Klasse passende Funktionen bereitstellen muss. Allerdings werden Records beim Zugriff immer kopiert, weshalb die Performance nicht optimal ist. Das könnte man mit Pointern verbessern.
Bei Verwendung von Klassen kannst du dir die Berechnungsfunktionen sparen. Dann leitet du von einer gemeinsamen Klasse ab, die im Constraint steht. Das heißt dort definierte Funktionen kann die generische Klasse dann einfach aufrufen. In den abgeleiteten Clusterklassen überschreibt du die dann einfach mit speziellen Funktionen zu dem jeweiligen Typ.
Sebastian Jänicke Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
|