If you use default parameter
values in an overloaded routine, avoid ambiguous parameter signatures.
Consider, for example, the following.
procedure
Confused(I: Integer); overload;
...
procedure
Confused(I: Integer; J: Integer = 0); overload;
...
Confused(X); //
Which procedure is called?
In fact, neither procedure is called. This code generates a compilation error.
Overloading procedures and functions
如果在重载例程中使用了缺省参数,那么应避免参数标记不明确。例如,
procedure
Confused(I: Integer); overload;
...
procedure
Confused(I: Integer; J: Integer = 0); overload;
...
Confused(X); //调用哪一个过程?
实际上,没有哪一个过程被调用。上面的代码将产生编译错误。