E2267 '%s' の以前の宣言は,'overload' 指令でマークされていません (Delphi)
エラーと警告のメッセージ(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.