默认情况下,delphi变量是否使用值初始化?
我是Delphi的新手,我已经运行一些测试,看看默认情况下初始化对象变量和堆栈变量:
TInstanceVariables = class fBoolean: boolean; // always starts off as false fInteger: integer; // always starts off as zero fObject: TObject; // always starts off as nil end; 这是我习惯了从其他语言的行为,但我想知道是否可以安全地依赖它在Delphi?例如,我想知道它是否可能依赖于编译器设置,或者在不同的机器上工作不同。是否正常依赖于对象的默认初始化值,或者您是否在构造函数中显式设置所有实例变量? 对于堆栈(过程级)变量,我的测试显示单位化的布尔是真实的,单位化的整数是2129993264,未归化的对象只是无效的指针(即不是nil)。我猜测的标准是在访问它们之前总是设置过程级变量? 解决方法
是的,这是记录的行为:
>对象字段总是初始化为0,0.0,”,False,nil或任何适用。 我记得Barry Kelly在某处写了一个“引用计数”的定义,但是找不到它,所以这应该在此期间:
笔记: >记录本身不足以成为引用计数>我还没有试过这个与泛型 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |