“删除这个”的未定义行为什么时候开始?
在 C 中,“删除这个”是一个有几个限制的构造在 C 常见问题解答中列出。虽然前三个限制看起来合理,但第四个限制禁止在删除后对该值进行任何检查、比较、打印或转换。本文探讨了为什么存在此限制。
神秘的“this”值
调用“delete this”后,“this”的值变得未定义,渲染任何涉及它的后续行动不可预测。虽然某些编译器的行为可能是明智的,但 C 规范并不能阻止意外甚至灾难性后果的发生。
未定义的行为:要避免的陷阱
编程中的未定义行为通常不鼓励这样做,即使特定编译器按预期处理它。此类行为的不可预测性可能会导致意外结果,甚至系统故障。
避免未定义行为的解决方法
要避免此问题,请考虑创建调用“删除此”之前的指针(作为整数)。此解决方法保留“this”的值,同时遵守删除后对其施加的限制。
以上是为什么在 C 中'删除此”之后检查或使用'此”未定义行为?的详细内容。更多信息请关注PHP中文网其他相关文章!