![]() |
Constructor von TThread überschreiben
Hallo zusammen.
Wenn ich versuche den Constructor von TThread zu überschreiben, bekomme ich folgenden Fehler:
Delphi-Quellcode:
Hab mal ein wenig gesucht und z.B E2170 Eine nichtvirtuelle Methode kann nicht überschrieben werden ![]() Geht das nun oder nicht :wiejetzt: Vielen Dank |
Re: Constructor von TThread überschreiben
diesen Konstructor überschreibt man nicht, man erstellt einfach nur einen Neuen.
Fazit: laß das override weg |
Re: Constructor von TThread überschreiben
Achso. Ja so klappt es :drunken:
Vielen Dank |
Re: Constructor von TThread überschreiben
richtiger wäre es so:
Delphi-Quellcode:
CoLT
Type
TMyThread = class(TThread) ... public constructor Create(CreateSuspended: Boolean); reintroduce; //da sonst compiler warnung end; implementation constructor Create; begin inherited Create(CreateSuspended); //eigenes zeugs end; end. |
Re: Constructor von TThread überschreiben
Das reintroduce unterdrückt ja nur die Compilerwarnung und macht sonst nix, also für die Funktion ist es nicht von Belangen ... stört also nicht, wenn es nicht da wäre.
Und inherited sollte man eh immer machen (außer man läßt es absichtlich geziehlt weg, aber dafür gibt es fast nie Gründe) |
Re: Constructor von TThread überschreiben
Zitat:
ReIntroduce dient zum unterdrücken der Compilerwarnung, dass die neue Methode eine virtuelle verdeckt. (wie von himitsu schon ausgeführt) Von daher ist ein Reintroduce hier vollkommen falsch, da bei einer Änderung der Basisklassen hier Hinweise auf mögliche Fehlerquellen unterdrückt werden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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 by Thomas Breitkreuz