如何覆盖TIniFile.Create构造函数?
此代码无效,因为Create是静态的:
TMyIniFile = class(TIniFile)
protected
public
constructor Create (CONST AppName: string); override; <------ Error 'Cannot override a non-virtual method'
end;
答案 0 :(得分:6)
您不能覆盖TIniFile
的构造函数,因为它不是虚拟的。 ini文件类不使用虚拟构造函数。
您只需从代码中删除override
即可。
TMyIniFile = class(TIniFile)
public
constructor Create(const AppName: string);
end;
像这样实施:
constructor TMyIniFile.Create(const AppName: string);
begin
inherited Create(FileName);//I can't tell what you need as FileName
FAppName := AppName;
end;
如果你需要创建一个,你可以这样做:
MyIniFile := TMyIniFile.Create(MyAppName);