Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: DCC W1010: Ich verberge nichts, dennoch wird gemeckert

  Alt 26. Nov 2010, 11:21
Die Methoden werden nicht im Kontext gesehen beim Kompilieren, sondern einzeln.
Nochwas, weswegen der Compiler so Einiges an Überholung bedarf.

Nimmst du den parameterlosen Konstruktor in TDemoSingleton weg, siehst du, warum er meckert. Weil der Konstruktor mit Parameter in TDemoSingleton in der Tat den parameterlosen Konstruktor in TSingleton verdeckt.
Nein, da wird auch nichts verdeckt, da das parameter Create immernoch "sichtbar" ist.
Wenn ich beim neuen Parameterlosen der Override vergessen hätte oder Diesen ebenfalls als Virtual/Dynamic deklariert hätte, dann hätt ich's ja verstanden, weil's dann wirklich verdeckt wäre
und man denken könnte, daß neue Felder nicht ausreichend initialisiert würden, wenn man das originale Create aufruft.

Reintroduce macht nix anderes als die Warnung, dass diese Methode eine andere verdeckt, zu unterdrücken. Daher ist es nicht von der gleichen Art, wie virtual und override.
Virtual, Dynamic steuern ob eine Methode überschreibbar ist
Overide überschreibt
und Reintroduce steuert die zugehörige Fehlermeldung (überschreiben zum Vorfahre).

Overload steuert aber das Überladen innerhalb der eigenen Klasse.

Ich rücke gern mal gleiche/ähnliche Dinge untereinander, damit es übersichtlicher wird.
Hier geht das nicht, Aufgrund der unterschiedlichen Reihenfolge.
$2B or not $2B
  Mit Zitat antworten Zitat