在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;
我知道类函数Create会隐藏默认构造函数。
无论构造函数创建参数
我应该使用构造函数吗?
答案 0 :(得分:6)
我应该使用构造函数吗?
简单地说,只有构造函数可以实例化一个新实例。类函数无法创建新实例。
对于产生新实例的类函数,必须最终调用构造函数以实例化新实例。如果您希望编写在创建实例时执行的代码,则应将其放在构造函数中。
在您的代码的类功能
中class function TPersonnel.Create: TPersonnel;
begin
Result := inherited Create;
end;
你正在调用没有参数的继承构造函数。