딥 클래스 계층 구조의 기본 클래스에 클래스 변수를 추가했습니다. 클래스 유형마다 생성 된 인스턴스의 수를 세는 정수입니다. 하지만 문제가 생겼어. Delphi 클래스 당 클래스 변수
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
과 같은 값이 반환되고 inspector를 통해 값을 변경하면 다른 값이 변경되므로 fCreated
이 하나의 전역 변수 인 것처럼 동작합니다.
fCreated
이 클래스 유형마다 유지 관리 될 것으로 예상됩니까? 내가 뭘 놓치고 있니?
동일한 댓글이 이미 여기에 표시되었습니다. http://stackoverflow.com/a/72496/12170 – PatrickvL
Hacky하지만 내가 원하는 것을 수행합니다. –