Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by HJay,
22. Mai 2017
OK, vielen Dank an alle für Eure Erklärungen!
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by HJay,
22. Mai 2017
Vielen Dank, OK, das verstehe ich jetzt! Gute Erklärung als Beispiel!
Umso mehr erscheint es doch aber dann als Fehler, dass TObject.Create eben gerade nicht virtuell deklariert ist...? Das war ja die Titelfrage dieses Threads...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by HJay,
22. Mai 2017
OK, danke.
Warum kann man den "constructor create" überschreiben, ohne "reintroduce" angeben zu müssen? Müsste das nicht kollidieren?
Wenn auch ohne "virtual/override" eine Vorfahrprozedur überschrieben und verdeckt werden kann und trotzdem mittels "inherited" die Vorfahrprozedur aufgerufen werden kann, dann verstehe ich eigentlich nicht, wozu man überhaupt "virtual/override" braucht?
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by HJay,
22. Mai 2017
Danke für die schnelle Antwort. Aber warum funktioniert das Ableiten von Create auch ohne "virtual"? Das Konzept, warum "virtual" mal nötig und mal nicht nötig ist, leuchtet mir nicht ein.
Warum ruft "inherited" trotzdem die richtige Vorfahrroutine auf und ist verwendbar?
Ich hätte eigentlich gedacht, dass man "virtual" deklarieren muss, wenn man möchte, dass die Klasse überschrieben werden...