//overload 函数或过程重载
重载的思想很简单:编译器允许你用同一名字定义多个函数或过程,只要它们所带的参数不同。
实际上,编译器是通过检测参数来确定需要调用的例程。
下面是从VCL的数学单元(Math Unit)中摘录的一系列函数:
function Min (A,B: Integer): Integer; overload;
function Min (A,B: Int64): Int64; overload;
function Min (A,B: Single): Single; overload;
function Min (A,B: Double): Double; overload;
function Min (A,B: Extended): Extended; overload;
当调用方式为Min (10, 20)时,编译器很容易就能判定你调用的是上列第一个函数,因此返回值也是个整数。
声明重载函数有两条原则:
1 每个例程声明后面必须添加 overload 关键字。
2 例程间的参数个数或(和)参数类型必须不同,返回值不能用于区分各例程。
//下面是ShowMsg 过程的三个重载过程。
procedure ShowMsg (str: string); overload;
begin
MessageDlg (str, mtInformation, [mbOK], 0);
end;
procedure ShowMsg (FormatStr: string; Params: arrayofconst); overload;
begin
MessageDlg (Format (FormatStr, Params), mtInformation, [mbOK], 0);
end;
procedure ShowMsg (I: Integer; Str: string); overload;
begin
ShowMsg (IntToStr (I) +' '+ Str);
end;
三个过程分别用三种不同的方法格式化字符串,然后在信息框中显示字符串。
下面是三个例程的调用:
ShowMsg ('Hello');
ShowMsg ('Total = %d.', [100]);
ShowMsg (10, 'MBytes');
overload 函数或过程重载
免责声明:文章转载自《overload 函数或过程重载》仅用于学习参考。如对内容有疑问,请及时联系本站处理。
上篇Swing之JList的使用Linux如何查看端口状态下篇
宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=