【发布时间】:2013-06-04 08:46:04
【问题描述】:
我想修复已使用多年的记录 TMyValue 中的设计缺陷,我迫切希望在记录本身中修复它 - 以避免更改公共接口 - 并且不需要使用记录的代码改变。
本质上,缺陷是 TMyValue 在创建时必须初始化为零,否则在其上调用 Clear 方法可能会导致崩溃。这是因为它包含一个字段,该字段是指向动态分配内存的指针,如果指针非零,并且 Clear 会导致动态内存被释放。
如果在堆栈上创建 TMyValue 则会出现问题,因为堆栈变量在创建时不会自动清零。
我认为我可以使用记录构造函数将记录归零,但记录构造函数不能是无参数的。大概这意味着您不能强制在堆栈上创建记录时自动执行记录构造函数。
我怀疑我的问题的答案是“无法完成”。请证明我错了!
【问题讨论】:
标签: delphi delphi-xe2