//例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;