gpt4 book ai didi

delphi - 为什么像 "Point"/"Rect"/"Bounds"(等)这样的函数同时在类和类型单元中声明?

转载 作者:行者123 更新时间:2023-12-03 15:39:08 28 4
gpt4 key购买 nike

我注意到在 Delphi 7 中,像 Point/Rect/Bounds (等)这样的函数都是在 中声明和实现的类和系统类型单元。

这有什么原因吗?对于较新的 Delphi 版本也是如此吗?

(我的猜测是,可以在需要时使用 Types 单元来避免 Classes 开销)

最佳答案

在旧版本中,这些类型和函数是在中声明的。随着 RTL 的开发,特别是为了支持跨平台,这些类型变得可用于不包含类的单元。

引入了Types单元来实现这一点。 Types 单元没有 uses 依赖项,因此可以安全地被任何其他单元使用,无论级别有多低。

主声明已移至 Types,并且 Classes 重新导出这些类型和函数,以便从 Classes 导入的现有代码受益>。例如,SysUtils 使用Types,但不允许使用Classes。将这些类型和函数移动到像 Types 这样的无依赖单元可以实现这一点。

这一改变是在Delphi 5和Delphi 6之间进行的,这是Delphi跨平台开发的开始。当时是Kylix,但RTL的重组有利于 future 跨平台的发展,尽管Kylix被放弃了。

关于delphi - 为什么像 "Point"/"Rect"/"Bounds"(等)这样的函数同时在类和类型单元中声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47690521/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com