Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
7. Jan 2011
Wie ich an anderer Stelle schon ausgeführt habe: Es kann sein, daß im inherited des Vorfahren eine virtuelle Methode aufgerufen wird, die im Kontext des Nachfahren halt doch auf FStream zugreift. Das Beispiel von TList.Destroy, daß virtuell Clear aufruft kommt in meinen Programmen bestimmt einige Male vor. Würde ich dort das Äquivalent von FStream vor dem inherited schon freigeben, würde das...
Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
7. Jan 2011
Natürlich muss man wissen, was man tut - das gilt immer und überall beim Programmieren. Es kann ja durchaus sein, daß im inherited eine virtuelle Methode aufgerufen wird, die in einer abgeleiteten Version auf einige der Instanz-Felder zugreift. Dann müssen diese Felder während des inherited Destroy noch gültig sein. TList ruft z.B. im Destroy ein Clear auf, das in einer abgeleiteten Klasse...
Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
7. Jan 2011
Ich behaupte das Gegenteil!
Erzeuge mal eine Instanz der folgenden Klasse und gib sie wieder frei:
type
TMyObject = class
public
destructor Destroy; override;
procedure FreeInstance; override;
end;