我想对程序和功能使用相同的名称,我可以这样做,有关这个问题的任何规定吗?
/// first version
function RunMyImageProcess (aRect : TRect; aBitmap : TBitmap ): TPoint; overload ;
/// a overload version, this works , it is simple :-)
function RunMyImageProcess (aRect : TRect; aBitmap : TBitmap ; aprocessflag : Boolean): TPoint; overload ;
/// need now a procedure
/// will return 2 Points now !!!
/// can I do this in DELPHI ????
procedure RunMyImageProcess (var LowerLeft, Upperright: TPoint; aBitmap : TBitmap ; aprocessflag : Boolean): boolean; overload ;
Run Code Online (Sandbox Code Playgroud)
您可以使用相同的名称重载功能和过程.
但是,您不能依赖函数返回类型来进行过载区分.因此,如果您有一个函数和一个具有相同参数列表的过程,则它们不能被重载.
我会提醒你不要因为超载而生气.你可以陷入各种各样的陷阱.例如,如果基于浮点或整数参数进行区分,则很难确定要调用的是哪个重载.当您区分指针和动态数组时,也存在很多混淆的空间,因为Embarcadero发现了XE3 TStream重载.
事实上,重载规则的文档是不完整的,完全理解编译器行为的唯一方法是通过逆向工程.
| 归档时间: |
|
| 查看次数: |
276 次 |
| 最近记录: |