E2251 Appel surchargé ambigu à '%s' (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Messages d'erreur et d'avertissement (Delphi)

Sur la base de la liste de surcharge en cours pour la fonction spécifiée et de l'appel programmé, le compilateur n'arrive pas à déterminer quelle version de la procédure invoquer.


program Produce;

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

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

begin
  f0(1);
end.

Dans cet exemple, le paramètre par défaut existant dans une des versions de f0 ne permet pas au compilateur de déterminer la procédure à appeler.


program Solve;

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

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

begin
  f0(1);
end.

La solution proposée par cet exemple a été de supprimer la valeur par défaut du paramètre. En conséquence, la procédure qui accepte un seul paramètre integer est appelée. Cette approche constitue la seule façon d'appeler la fonction avec un seul paramètre.