是否必须在构造函数的第一行继承?

Is it mandatory to have Inherited on the first line, in a constructor?

是否必须在构造函数的第一行继承?
我可以在 'Inherited' 之前有其他代码吗?

示例:

constructor TMyIniFile.Create(SectionName: string);                                          
VAR Path: string;
begin
 Path:= UserProfileFolder;  //initialize path here

 inherited Create(Path);

 //more code ..
end;

Delphi 的对象模型(与 C++ 对象模型相比)的优点之一是您 - 作为程序员 - 可以决定何时调用继承的构造函数。您在问题中显示的代码对 运行.

是完全安全的

此外 - 您可以毫无问题地使用实例字段,即。

CONSTRUCTOR TSomeClass.Create;
  BEGIN
    FSomeInstanceField:=123;
    INHERITED Create;
  END;

这将调用继承的构造函数,该构造函数将有权访问 FSomeInstanceField 变量的修改值。