是否必须在构造函数的第一行继承?
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 变量的修改值。
是否必须在构造函数的第一行继承?
我可以在 '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 变量的修改值。