2012-10-13 4 views
2

나는 델파이에서 클래스 시스템을 만들려고했다. TFieldSpecTTableSpec 클래스는 객체 속성을 통해 서로를 참조합니다.상호 참조 된 클래스 유형을 선언하는 방법은 무엇입니까?

[Error] Objects.pas(66): Undeclared identifier: 'TTableSpec' 

어떻게 이러한 클래스 유형을 구축하기 :이를 컴파일 할 때

type 
    TFieldSpec=class(Tobject) 
    private 
    FTableSpec : TTableSpec; 
    public 
    property TableSpec : TTableSpec read FTableSpec; 
    end; 

    TTableSpec=class(Tobject) 
    private 
    FFields : array[1..100] of TFieldSpec; 
    end; 

, 나는이 오류가?

답변

10

당신은 TTableSpec 선언 앞으로 사용해야합니다

type 
    TTableSpec = class; 

    TFieldSpec=class(Tobject) 
    private 
    .. 
    FTableSpec : TTableSpec; 
    .. 
    end; 

    TTableSpec=class(Tobject) 
    private 
    FName : string; 
    .. 
    end; 
+0

을 ... 그리고 전방 선언은 동일한 "유형"선언에서 선언 될 필요가 – Jason

관련 문제