“delete this”之后“this”的危险
C 中“delete this”结构的使用并非没有它的好处陷阱。虽然对其使用的前三个限制是可以理解的,但针对检查其价值或对其执行任何其他操作的第四个限制可能看起来令人困惑。毕竟,它只是一个指针,对吧?
这种看似任意的限制的原因在于调用“delete this”后“this”指针的值的未定义性质。这个未定义的值可能会导致不可预测的后果和潜在的灾难性行为。
例如,想象一下重新解释指向整数的“this”指针,然后尝试访问它。编译器可以自由地决定此操作是否需要擦除您的硬盘驱动器。虽然大多数编译器可能会表现得更合理,但在面对未定义行为时依赖它们的良性是一场危险的游戏。
为了避免未定义行为的风险,在删除指针之前复制指针是明智的做法。目的。这允许您继续使用副本,同时确保原始“this”指针的行为保持可预测的不可预测性。
以上是为什么在 C 中'delete this”之后使用'this”是一个坏主意?的详细内容。更多信息请关注PHP中文网其他相关文章!