|
|
1
14
记录是值类型,而不是引用类型。这意味着所有用作较大数据结构成员的记录都内联放置在结构本身中,而不是作为指针。试图创建两个相互包含的记录会使编译器在试图找出记录的结构时陷入无限循环。这可能就是为什么不能向前声明记录的原因,即使尝试在此处插入引用类型(动态数组),也不能违反语言规则。 但您可以将指向记录类型的指针声明为正向声明,如下所示:
|
|
|
2
4
虽然我完全同意梅森的观点,但有一种方法可以绕过限制。基本上,在声明MyRec2之后,您可以使用record helper来定义必要的功能。
|
|
|
3
4
这个问题对我来说就像一个笑话——它不是关于相互引用,而是关于一个无限类型定义循环。至于相互引用,可以通过在记录中定义类型来解决(我使用了Delphi2009):
但如何使用上述记录类型?真有趣。:)
|