Zitat von
Nogge:
Aso, vergessen zu erwähnen: Man kann den Konstruktor dann zwar nicht mehr mit nem "." auswählen, allerdings akzeptiert der Compiler <Instance>.Create() als ganzes.
Ich habe mich da jetzt noch mal genau mit befasst:
Der Compiler sowie die Entwicklungsumgebung akzeptieren sowohl <class>.Create() als auch <instance>.Create(). Das einzige, was sich durch einen abstrakten Konstruktor verändert, ist die Anzeige des Compilers, wenn man der Unterklasse
TTest von
TNonVCLThread erben lässt:
Zitat:
[Warning] Test.pas(75): Method 'Create' hides virtual method of base type 'TNonVCLThread'
Das ist dann wohl die "einschränkenste" Fehlermeldung für die Implementierung einer echten abstrakten Klasse :( Naja, besser als nichts. Mithilfe von
reintroduce kann man dann den Konstruktor überschreiben, ohne dass diese Warnung erscheint.