【发布时间】:2010-12-18 01:14:45
【问题描述】:
我正在尝试使用
创建 TForm 的子类- 特定情况下的特殊构造函数,以及
- 默认构造函数,将保持与当前代码的兼容性。
这是我现在的代码:
interface
TfrmEndoscopistSearch = class(TForm)
public
/// original constructor kept for compatibility
constructor Create(AOwner : TComponent); overload; override;
/// additional constructor allows for a caller-defined base data set
constructor Create(AOwner : TComponent; ADataSet : TDataSet; ACaption : string = ''); overload;
end;
它似乎工作,但我总是得到编译器警告:
[警告] test.pas(44): 方法 'Create' 隐藏了基本类型 'TCustomForm' 的虚拟方法- 添加“重载;”在第二个构造函数不会编译之后。 “[Error] test.pas(44): 'Create' 的声明与之前的声明不同”。
- 使第二个构造函数成为类函数编译时不会出现任何错误或警告,但会在运行时因访问冲突而终止(所有成员 var 均为 nil)。
【问题讨论】:
标签: delphi constructor overloading