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