//例1: 这是正确的 TClassA = class Field1: string; Field2: Integer; end; TClassB = class Field1: string; Field2: Integer; Field3: TClassA; {字段 Field3 的类型是刚刚新定义的 TClassA 类型} end;
//例2: 这是错误的, 这里有个顺序问题 TClassA = class Field1: string; Field2: Integer; Field3: TClassB; {字段 Field3 的类型是将要定义的 TClassB 类型} end; TClassB = class Field1: string; Field2: Integer; end;
//例3: 解决方案 - 向前声明 TClassB = class; {向前声明} TClassA = class Field1: string; Field2: Integer; Field3: TClassB; end; TClassB = class Field1: string; Field2: Integer; end;