Forum: Object-Pascal / Delphi-Language
Delphi
by stahli,
13. Feb 2016
Aber wenn Du von TDerivedClass ableitest, kannst Du auch vergessen, die InternalCleanUp zu überschreiben.
Meine Frage (oder wenn mal will auch Anregung) war, dass der Compiler in dem Fall warnt.
type
TBaseClass = class
private
procedure CommonCleanup;
protected
procedure InternalCleanup; virtual; abstract;
public
Forum: Object-Pascal / Delphi-Language
Delphi
by stahli,
13. Feb 2016
Danke für die Mühe.
Aber dann schaue ich lieber von Hand durch, ob ich die Methoden überall korrekt überschrieben habe.
Hätte ja sein können, dass ich ein passendes Attribut nicht kenne.
Die Hilfe ist ja da nicht immer eine solche.
Forum: Object-Pascal / Delphi-Language
Delphi
by stahli,
13. Feb 2016
In meinem Fall für Aufräumaktionen für mehrere Klassen und Interfaces.
Jede Ableitung muss bestimmte Dinge beachten und daher i.d.R. die Methode überschreiben.
Natürlich BRAUCHT man das Attribut nicht. Aber es könnte bei der Fehlervermeidung helfen.
Forum: Object-Pascal / Delphi-Language
Delphi
by stahli,
13. Feb 2016
Genau, was geskill schreibt.
Die zweite Ableitung wird dann nicht mehr beanstandet wenn sie die Methode nicht selbst nochmal überschreibt.
Und MustOverride könnte dennoch eine Deklaration der Basismethode ermöglichen.
Forum: Object-Pascal / Delphi-Language
Delphi
by stahli,
13. Feb 2016
So ein MustOverride gibt es nicht - oder?
MyClass = class
procedure MyMethode; virtual; mustoverride;
Der Compiler sollte somit meckern, wenn man einmal vergisst, die Methode in einer abgeleiteten Klasse zu überschreiben.
Quasi ein Abstract, aber bei jeder Vererbung.