Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Aufruf abstrakter Methode führt zu Fehler (https://www.delphipraxis.net/158308-aufruf-abstrakter-methode-fuehrt-zu-fehler.html)

Blup 16. Feb 2011 11:54

AW: Aufruf abstrakter Methode führt zu Fehler
 
Die einzige Schwachstelle des Compilers ist, das er an dieser Stelle nicht warnt:
Delphi-Quellcode:
procedure TKonkretAbgeleitet.Methode;
begin
 inherited Methode; // <- keine Warnung
 WriteLn('Methode wurde implementiert');
end;
Und dieser Programmierfehler wird auch hier die Ursache des Problems sein.

FaTaLGuiLLoTiNe 16. Feb 2011 12:08

AW: Aufruf abstrakter Methode führt zu Fehler
 
Hmmm... Tatsache. Das ist wirklich suboptimal.

DeddyH 16. Feb 2011 12:25

AW: Aufruf abstrakter Methode führt zu Fehler
 
Das finde ich nicht. Ansonsten müsste ich ja erst nachschauen, ob die Methode in der Elternklasse implementiert wurde. So juckt mich das nicht, mit dem inherited-Aufruf bin ich auf der sicheren Seite.

SirThornberry 16. Feb 2011 12:27

AW: Aufruf abstrakter Methode führt zu Fehler
 
Könntet ihr bitte zurück zum Thema kommen anstelle eine Grundsatzdiskussion zu führen?

Zitat:

So juckt mich das nicht, mit dem inherited-Aufruf bin ich auf der sicheren Seite.
Nur wenn du es nicht wie in obigem Beispiel geschrieben hast.

folgendes kann wirklich der Fehler sein:
Delphi-Quellcode:
procedure TKonkretAbgeleitet.Methode;
begin
 inherited Methode; // <- Fehlermeldung weil explizit eine abstrakte Methode aufgerufen wird
 WriteLn('Methode wurde implementiert');
end;
aber sowas kann man umgehen indem man schreibt:
Delphi-Quellcode:
procedure TKonkretAbgeleitet.Methode;
begin
 inherited;
 WriteLn('Methode wurde implementiert');
end;
Am besten wäre Quelltext von der Stelle an der, der Fehler auftritt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz