在Delphi中,构造函数和类函数之间用于实例化对象有什么区别?
TPersonnel = class(TPersistent)
public
class function Create: TPersonnel; overload;
constructor Create(APersonelID: integer); overload;
end;
class function TPersonnel.Create: TPersonnel;
begin
result := inherited Create;
end;
constructor TPersonnel.Create(APersonelID: integer);
begin
inherited Create;
end;
Run Code Online (Sandbox Code Playgroud)
我知道类函数Create会隐藏默认构造函数.
无论构造函数Create参数
有理由我应该使用构造函数吗?
有理由我应该使用构造函数吗?
简单地说,只有构造函数可以实例化一个新实例.类函数无法创建新实例.
对于产生新实例的类函数,它必须最终调用构造函数以实例化新实例.如果您希望编写在创建实例时执行的代码,则应将其放在构造函数中.
在你的代码的类函数中
class function TPersonnel.Create: TPersonnel;
begin
Result := inherited Create;
end;
Run Code Online (Sandbox Code Playgroud)
您正在调用没有参数的继承构造函数.