![]() |
Im Konstruktor virtuelle Methode aufrufen?
Hallo,
funktioniert der folgende Quelltext?
Delphi-Quellcode:
Dass TAbstrakt.Create mit einem abstrakten Error fehlschlägt, ist klar; wie sieht es mit TKonkret.Crete aus? Ich werd das jetzt natürlich ausprobieren, aber meine Klassen sind schon ziemlich dick, deswegen ist das Debuggen nicht mehr so leicht, wenn plötzlich aus heiterem Himmel irgendwo ein Abstrakter Error auftaucht...
initialization
type TAbstrakt = class public constructor Create; procedure VirtualInit; virtual; abstract; end; TKonkret = class public procedure VirtualInit; override; end; implementation constructor TAbstrakt.Create; begin DoSomethingUseful; VirtualInit; end; procedure TKonkret.VirtualInit; begin DoSomethingEleAsUseful; end; |
Re: Im Konstruktor virtuelle Methode aufrufen?
Magst du AfterContruction nicht? ;)
Zitat:
|
Re: Im Konstruktor virtuelle Methode aufrufen?
AfterConstruction... aha. Mal sehen. War bis jetzt noch nicht in meinem aktiven Delphi-Wortschatz ;)
Allerdings hab ich schon sehr viel jetzt im Konstruktor liegen, das eben nach diesem "VirtualInit" passieren muss, das müsst ich dann auch alles verschieben. Also lieber wärs mir, so wies oben ist... geht das? @Call Stack: Ja, aber nur mit MadExcept, und das darf ich für kommerzielle Arbeit nicht verwenden wegen fehlender Lizenz^^ Der Delphi Debugger ist da schon lange ausgestiegen, wo ich bin(DLL-Entwicklung). |
Re: Im Konstruktor virtuelle Methode aufrufen?
Zitat:
konstruktoren benutze ich eigentlich nur zum Initialisieren von eldern. wenn ich das nicht muss, nehme ich gar keinen. Destruktoren überschreibe ich eigentlich nie... Zitat:
|
Re: Im Konstruktor virtuelle Methode aufrufen?
Ok, danke. Und AfterConstruction/BeforeDestruction werde ich jedenfalls in Zukunft benutzen. Der Ansatz "Im Konstruktor Felder nillen, rest in AfterConstruction" scheint mir sehr elegant.
|
Re: Im Konstruktor virtuelle Methode aufrufen?
Zitat:
Mit Initialisieren meinte ich Parameter des Konstruktors, die benutzt werden um Felder zu initialisieren. ;) |
Re: Im Konstruktor virtuelle Methode aufrufen?
aha... noch so etwas, das ich nicht wusste^^
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz