Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - inherited wird nicht compiliert


Daniel L. - Do 25.11.10 21:55
Titel: inherited wird nicht compiliert
Hi,

schreibt man inherited in einem sinnlosen Zusammenhang, wird dafür kein Code erzeugt.

Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.test;
begin
    inherited;     // Für diese Zeile wird kein Code erzeugt
end


Ich würde eigentlich eine Fehlermedung erwarten, weil es test in TForm nicht gibt.
(Code-Optimierung ist ausgestellt)

:?!?: : Daniel


jaenicke - Do 25.11.10 22:26

Es gibt u.a. keine Fehlermeldung, damit man es prophylaktisch hinschreiben kann. Wenn dann in der Ursprungsklasse etwas geändert wird (nämlich die Methode implementiert), muss man nicht in allen abgeleiteten auch etwas ändern (und daran denken).

Inherited ruft die entsprechende Methode der Elternklasse auf, wenn diese existiert. Und wenn nicht, eben nicht.