我创建了一个新的后代,该后代使基本构造函数超载
TJSONTOXML = class(TIpwJSON)
private
...
public
constructor Create(AOwner: TForm; ALogLevel: Integer); reintroduce; overload;
end;
但是我忘了更改以前的创建调用
lIpwJSON := TIpwJSON.Create(Self);
到新
lJSONToXML := TJSON2XML.Create(Self,lLevel);
相反,我只是替换了类型,所以它是:
lJSONToXML := TJSON2XML.Create(Self);
我花了很多时间才弄清楚;-(
有没有办法防止这种情况?
我可以使用Create(AOwner)
进行肮脏的Assert(False)
覆盖,但更喜欢更简洁的方法。
注意:父级构造函数是
public
constructor Create(AOwner: TComponent); overload; override;
constructor Create(AOwner: TComponent; OEMKey: string); reintroduce; overload;