AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Frage zu overload + reintroduce

Ein Thema von Der schöne Günther · begonnen am 25. Nov 2013 · letzter Beitrag vom 23. Mai 2014
 
Der schöne Günther

Registriert seit: 6. Mär 2013
6.191 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Frage zu overload + reintroduce

  Alt 25. Nov 2013, 10:52
Delphi-Version: XE5
Eine Kindklasse möchte eine abstrakte Methode der Oberklasse implementieren und überladen. Beispiel:

Delphi-Quellcode:
   TBaseClass = class abstract
      procedure someProc(); virtual; abstract;
   end;

   TChildClass = class(TBaseClass)
      procedure someProc(); overload; override;
      procedure someProc(const someInput: Integer); overload; virtual;
   end;
Der Compiler meint:
Code:
Warnung: W1010 Methode 'someProc' verbirgt virtuelle Methode vom Basistyp 'TBaseClass'
Ich sehe nicht, wie da irgendetwas verborgen wird

Die Compilerwarnung geht weg wenn man entweder
  1. TBaseClass::someProc() die Direktive 'overload' hinzufügt
  2. TChildClass::someProc(Integer) die Direktive 'reintroduce' hinzufügt

Ersteres finde ich Quatsch. In der Oberklasse interessiert es mich herzlich wenig, ob in einer Kindklasse mal überladen wird. Außerdem würde ich mir so wahrscheinlich angewöhnen, grundsätzlich an jede Methode ein 'overload' anzuhängen.

Zweiteres ist logisch, laut Hilfe macht 'reintroduce' nichts anderes, als nur Compilerwarnungen zu unterdrücken. Aber wie gesagt: Ich sehe nicht, wie hier überhaupt etwas verdeckt wird...
  Mit Zitat antworten Zitat
 

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:05 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