Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#11

Re: Create wird nicht aufgerufen bei Klassen-Chaos

  Alt 13. Jan 2006, 21:17
Zitat von Muetze1:
Es muss vor allem nur ein virtueller Constructor Create definiert werden in der TImport_Virtual - kein abstrakter!

Die Ableitungen müssen ihn überschreiben und dann wird dieser auch aufgerufen...
Warum _muss_ der Konstruktor virtuell sein? Wenn die Basisklasse rein abstrakt ist und nicht irgendwelche Felder befüllen muss, kann der Konstruktor doch auch abstrakt sein.
Zitat von tomsel:
Genau! Die Variable "Import" ist ja wohl vom Typ TImport_Virtual. Da TImport_Virtual den Construktor von TObject nicht überschreiben kann, ihn aber auch nicht verdeckt, wird halt TObject.Create aufgerufen.
Aha, und TObject.Create wirft dann eine EAbstractError-Exception . Natürlich wird der Konstruktor von TObject wie jede andere Methode von einem gleichnamigen Konstruktor (egal ob abstrakt oder nicht) verdeckt.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat