E2267 '%s' の以前の宣言は,'overload' 指令でマークされていません (Delphi)

提供: RAD Studio
移動先: 案内検索

エラーと警告のメッセージ(Delphi) への移動

{ この問題の解決方法は 2 つある。overload を削除するか,あるいは元の宣言を overload 指令でマークすればよい。この例では元の宣言をマークしている }


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.

{ 次の例では,最初の func をオーバーロード可能とマークせずに Char 用 func をオーバーロードしようとしている }

{ オーバーロードするすべての関数を overload 指令でマークしなければならない。すべてのバージョンで overload が必要ないとすると,既存のメソッドをオーバーロードする新しいメソッドを使用し,ソースの再コンパイルだけで別の動作を生成することが可能になる }


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.