我试图从Tdictionary继承,但是默认的比较器丢失了。本质上我所做的是:
type
TinpVar = class
end;
TinputVars = class(Tdictionary<string,TinpVar>)
end;
TLVRvars = class(TinputVars)
constructor create;
end;
constructor TLVRvars.create;
begin
inherited;
end;
var LVRvars : TLVRvars;
begin
LVRvars:=TLVRvars.create;
使用这个构造函数时,当向LVRvars添加键/值对时,我会遇到一个AV错误。最终我发现可以通过更改继承类的构造函数来防止这种情况。
constructor TLVRvars.create;
begin
inherited create;
end;
我不明白为什么我必须这样做。虽然我的问题已经解决了,但我仍然想知道。