Einzelnen Beitrag anzeigen

Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#1

Beliebig viele Instanzen von einer abgeleiteten Klasse

  Alt 20. Okt 2003, 19:24
Ich habe gerade wieder mal Zeit gefunden, mich an meine typisierte Datei für Baumstrukturen ranzumachen, stoße jetzt aber auf ein kleines Problem, zu dass ich einen Denkanstoß brauchen könnte.

Wie in diesem Thread beschrieben, definiere ich eine abstrakte Klasse für die einzelnen Nodes, eine davon abgeleitete Klasse ersetzt die abstrakten Methoden, die hautpsächlich der Verwaltung dienen, durch reelle. Das klappt super beim Schreiben in Dateien, da ja die Nodes bereits existieren, aber beim Lesen gibts da leider ein Problem: In der Unit mit der Klassendefinition ist ja nur die abstrakte Klasse bekannt, und beim Lesen muss ich ja dynamisch Nodes erzeugen, doch da die abgeleitete Klasse hier nicht bekannt ist (und das auch nicht soll, da die Klasse universell verwendbar sein soll) kann ich ja nur Instanzen der abstrakten Klassen erzeugen, was ich so natürlich nicht will.

Frage: Wie kann ich nun Instanzen der abgeleiteten Klasse erzeugen bzw. wie bekomme ich die Instanzen in die Funktion (ich weiß vorher nicht, wie viel ich brauch, eine vorgefertigte Liste scheidet also aus), ohne die Deklaration der abgeleiteten Klasse dieser Unit bekannt zu machen?

Die einzige Möglichkeit, die mir einfiele, wäre, eine Callback-Prozedur an die Einleseprozedur zu übergeben, welche dann bei Bedarf die Callback-Methode aufrufen würde. Die Callback-Methode würde dabei eine Instanz dieser (abgeleiteten) Klasse erzuegen, die nun verwendet werden könnte.

Hmm, während ich das hier schreibe, merke ich, dass diese Methode mit der Callback-Prozedur gar nicht so schlecht ist, wie ich anfangs dachte. Aber da ich dies nicht umsonst schreiben will, frage ich trotzdem, vielleicht kann mir doch jemand eine bessere Lösung vorschlagen.


P.S. Blöd, dass der Titel nur so kurz sein darf - ich hätte noch ein paar Worte mehr brauchen könnnen
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat