overload 函数或过程重载

摘要:
整数):单个;双):双;扩展):扩展;procedureShowMsg(str:Params:arrayofconst);超载;终止procedureShowMsg(I:Integer;Str:string);超载;begin ShowMsg(IntToStr(I)+“”+Str);终止
//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');


通过 Wiz 发布


免责声明:文章转载自《overload 函数或过程重载》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Swing之JList的使用Linux如何查看端口状态下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

用句柄操作下拉框

你要获得组合框的句柄做什么呢?是要读取组合框条目的值还是进行什么操作呢?要读取值用selectedIndex读取索引值(从0开始),用selectedItem读取选项的内容(要进行类型转换),用selectedIndex.key可以获得按键值;要完成句柄的操作也有三种方式,用其一也可,但工程较大,用于Windows编程:1、用父窗口的函数: WM_DRAW...

爬取js加密和混淆的例子

作业讲解:js逆向 概述 url:https://nyloner.cn/proxy 需求:将这个网页中的代理ip和端口号进行爬取 难点: 动态变化的请求参数 js加密 需要js逆向 分析 爬取的数据是动态加载 并且我们进行了抓包工具的全局搜索,没有查找到结果 意味着:爬取的数据从服务端请求到的是加密的密文数据 页面每10s刷新一次,刷新后...

大根堆的创建过程

初始堆就是大根堆,只是是第一次(初始序列)调整,第一次必须是自底向上逐个调整,以后(第一次交换后)是自上向下调整(因为除了第一个即堆顶元素,其他都是已经调整好的堆)。过程:先把数据画出一颗二叉树:                     40           30                92    16         20     47  ...

【笨嘴拙舌WINDOWS】GDI绘制区域

在默认情况下,Gdi绘画操作的使用白纸(窗口的客户区)黑字(Pen的颜色)!前面我们已经讲过如何改笔,现在来学习改变白纸(GDI的绘制区域) 正常的纸为一个矩形形状!有时候小孩不小心撕掉纸的一角,不小心被纸中间掏空了,又或者纸被剪成了艺术品,比如: 如果在这样的图片上垂直方向的中央划一根4个像素的黑色的线条讲呈现出下面的效果     黑色的线条被纸分...

矩阵LU分解

    有如下方程组 ,当矩阵 A 各列向量互不相关时, 方程组有位移解,可以使用消元法求解,具体如下:     使用消元矩阵将 A 变成上三角矩阵 ,     ,     使用消元矩阵作用于向量 b,得到向量 c,,     ,     Ax=b 消元后变为 ,即 , 由于  为上三角矩阵, 使用回带法即可求解方程组。     对矩阵  做如下运算 。在...

浅谈MindSpore的动态Shape

写在前面   在MindSpore开发过程中,由于动态Shape算子的开发需求,再加上MindSpore的动态Shape也在持续完善,笔者遇到了框架上的一些问题。通过查看源码和相关文档的方式,获得了初步的解决方案和感悟。这篇博客主要是将当时的见闻加以整理,并给出一点点开发建议。此外,当时笔者还做了组内分享,附件是分享的胶片,如果不想看文字版,也可以直接看胶...