我试图在Delphi中构造一个类系统。类TFieldSpecTTableSpec通过对象属性相互引用。

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;


编译时,出现以下错误:

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


如何构造这些类类型?

最佳答案

您应该使用TTableSpec的前向声明:

type
  TTableSpec = class;

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

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

关于delphi - 如何声明交叉引用的类类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12870126/

10-13 04:37