W1009 Redeklaration von '%s' verbirgt einen Member in der Basisklasse (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

In einer Klasse wurde eine Eigenschaft erstellt, die dieselbe Bezeichnung wie eine Variable in einer der Basisklassen hat. Eine mögliche, aber nicht immer offensichtliche Ursache für diesen Fehler liegt darin, dass eine neue Version der Basisklassen-Hierarchie installiert wurde, die neue Member-Variablen aufweist, deren Bezeichnungen mit den Bezeichnungen Ihrer Eigenschaften identisch sind. -W


(*$WARNINGS ON*)
program Produce;

  type
    Base = class
      v : integer;
    end;

    Derived = class (Base)
      ch : char;
      property v : char read ch write ch;
    end;

begin
end.

Derived.v überschreibt, d. h. verbirgt, Base.v; der Zugriff auf Base.v ist ohne Typumwandlung aus keiner Variablen vom Typ Derived möglich.


(*$WARNINGS ON*)
program Solve;
  type
    Base = class
      v : integer;
    end;

    Derived = class (Base)
      ch : char;
      property chV : char read ch write ch;
    end;

begin
end.

Der Fehler ist nach Änderung der Bezeichnung der Eigenschaft in der abgeleiteten Klasse behoben.