我已经将类变量添加到深层次结构的基类中.它是一个整数,用于计算每个类类型创建的实例数.但我遇到了一个问题.
举个例子:
TBaseClass = class private class var fCreated: integer; public class function NewInstance: TObject; override; end; TDescendant = class(TBaseClass) end; ... class function TBaseClass.NewInstance: TObject; begin result := inherited NewInstance; inc(fCreated); end;
我假设我可以使用类var来存储每个类创建的实例数,但似乎并非如此.
检查TBaseClass.fCreated返回与TDescendant.fCreated相同的值,通过检查器更改一个更改另一个,因此它的行为就好像fCreated是一个全局变量.
我期望fCreated按类别维持,是不是这一点?我错过了什么?