gpt4 book ai didi

delphi - 重载函数和过程,有什么规则吗?

转载 作者:行者123 更新时间:2023-12-03 19:00:33 25 4
gpt4 key购买 nike

想对过程和函数使用相同的名称,我可以这样做吗,关于这个问题有什么规定吗?

 /// 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 ;

最佳答案

您可以重载具有相同名称的函数和过程。

但是,您不能依赖函数返回类型来区分重载。因此,如果您有一个具有相同参数列表的函数和过程,则它们不能被重载。

我会提醒您不要因重载而发疯。您可能会掉入各种陷阱。例如,如果您根据 float 或整数参数进行区分,则很难确定您正在调用哪个重载。当您区分指针和动态数组时,也有很多混淆的余地,正如 Embarcadero 在 XE3 TStream 重载中发现的那样。

事实上重载规则的文档是不完整的,完全理解编译器行为的唯一方法是通过逆向工程。

关于delphi - 重载函数和过程,有什么规则吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15712522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com