E2267 Bei der vorherigen Deklaration von '%s' wurde die Direktive 'overload' nicht angegeben (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Es gibt zwei Lösungen für dieses Problem. Sie können entweder den Überladungsversuch entfernen oder die Anweisung overload in die Originaldeklaration aufnehmen. Dieses Beispiel zeigt die zweite Möglichkeit.


program Produce;
type
  Base = class
    procedure func(a : integer);
    procedure func(a : char); overload;
  end;

  procedure Base.func(a : integer);
  begin
  end;

  procedure Base.func(a : char);
  begin
  end;

end.

In diesem Beispiel wird versucht, die char-Version der Funktion func zu überladen, ohne die erste Version von func mit overload als überladbar zu markieren.

Sie müssen alle Funktionen, die überladen werden sollen, mit der overload-Direktive kennzeichnen. Wenn overload nicht für alle Versionen erforderlich wäre, wäre es möglich, einen neue Methode einzuführen, die eine vorhandene Methode überlädt. Durch eine Neucompilierung würde dann eine anderes Verhalten erreicht.


program Solve;
type
  Base = class
    procedure func(a : integer); overload;
    procedure func(a : char); overload;
  end;

  procedure Base.func(a : integer);
  begin
  end;

  procedure Base.func(a : char);
  begin
  end;

end.