理解 Delphi 的类(十) - 深入方法[23] - 重载
2008-01-15 00:51
549 查看
{ 下面的函数重名, 但参数不一样, 此类情况必须加 overload 指示字; 调用时, 会根据参数的类型和个数来决定调用哪一个; 这就是重载. } function MyFun(s: string): string; overload; begin Result := '参数是一个字符串: ' + s; end; function MyFun(i: Integer): string; overload; begin Result := '参数是一个整数: ' + IntToStr(i); end; function MyFun(x,y: Integer): string; overload; begin Result := Format('参数是两个整数: %d 和 %d', [x,y]); end; {测试} procedure TForm1.Button1Click(Sender: TObject); var str: string; begin str := MyFun('万一'); ShowMessage(str); {参数是一个字符串: 万一} str := MyFun(99); ShowMessage(str); {参数是一个整数: 99} str := MyFun(6,8); ShowMessage(str); {参数是两个整数: 6 和 8} end; //另外还要注意关于重载和默认参数的问题, 譬如, 下面的重载是不可行的: function MyFun(x,y: Integer): string; overload; begin Result := IntToStr(x + y); end; function MyFun(x: Integer; y: Integer = 1): string; overload; begin Result := IntToStr(x + y); end; {因为当我们这样调用时: MyFun(a,b); 系统就不知道要调用哪个了!}
相关文章推荐
- 理解 Delphi 的类(十一) - 深入类中的方法[6] - 类中的方法重载
- 理解 Delphi 的类(十) - 深入方法[5] - Result 与函数名
- 理解 Delphi 的类(十) - 深入方法[13] - 在 interface 区声明的方法
- 理解 Delphi 的类(十) - 深入方法[22] - 指针参数
- 理解 Delphi 的类(十) - 深入方法[25] - 使用方法类型
- 理解 Delphi 的类(十一) - 深入类中的方法[3] - 方法在实现时的参数省略
- 理解 Delphi 的类(十一) - 深入类中的方法[9] - 不能被覆盖的方法与不能被继承的类
- 理解 Delphi 的类(十一) - 深入类中的方法[12] - 消息方法
- 理解 Delphi 的类(十一) - 深入类中的方法[13] - 方法的调用约定
- 理解 Delphi 的类(十) - 深入方法[24] - 方法是一个指针
- [DELPHI-码农]理解 Delphi 的类(十) - 深入方法[15] - 调用其他单元的函数
- [转]理解 Delphi 的类(十一) - 深入类中的方法[10] - 构造方法与析构方法
- 理解 Delphi 的类(十一) - 深入类中的方法[8] - 抽象方法与抽象类
- 理解 Delphi 的类(十) - 深入方法[6] - Result
- 理解 Delphi 的类(十) - 深入方法[14] - 在TForm1 类内声明的方法
- 理解 Delphi 的类(十) - 深入方法[24] - 方法是一个指针
- 理解 Delphi 的类(十一) - 深入类中的方法[4] - 访问限制(或者叫可见性)
- 方法重载(overload)的例子分析(摘自<深入理解Java虚拟机>)
- 理解 Delphi 的类(十) - 深入方法[7] - Result
- 理解 Delphi 的类(十) - 深入方法[15] - 调用其他单元的函数