E2251 '%s' へのオーバーロード呼び出しはあいまいです (Delphi)

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

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

現在の指定された関数のオーバーロードリスト,およびプログラムされた起動に基づいたときに,コンパイラはどの手続きを起動すればよいか判断できません。


program Produce;

procedure f0(a : integer); overload;
begin
end;

procedure f0(a : integer; b : char = 'A'); overload;
begin
end;

begin
  f0(1);
end.

{ この例では,f0 のいずれかのバージョンにデフォルトパラメータが存在するため,コンパイラが実際にどの手続きを呼び出せばよいか判断できなくなっている }


program Solve;

procedure f0(a : integer); overload;
begin
end;

procedure f0(a : integer; b : char); overload;
begin
end;

begin
  f0(1);
end.

{ この例で使った解決方法は,デフォルトパラメータ値を削除することである。これにより,整数型パラメータを 1 つだけとる手続きが呼び出される。これが,単一パラメータ関数を呼び出すためのただ 1 つの方法である }