首页 > 后端开发 > C++ > 在 C 中检查'this”空值是否合理?

在 C 中检查'this”空值是否合理?

Susan Sarandon
发布: 2024-11-03 20:15:03
原创
419 人浏览过

Is Checking for

检查“this”是否为空是否合理?

在面向对象编程领域,“this”的概念,通常与当前对象的概念同义,起着至关重要的作用。然而,在这种情况下出现的一个问题是检查“this”是否为空是否有意义。

原始问题:

在与成员一起上课函数时,开发人员提出了这样的问题:

“如果我有一个方法,其中包含条件“this == nullptr”,并且结果为 true,则系统会指示我返回错误代码。如果"this" 确实为 null,说明该对象已被删除,该方法还能产生任何输出吗?"

标准 C 视角:

在标准 C 中,答案是否定的。根据定义,对空指针进行的调用是未定义的行为。任何依赖于检查“this”== null 的代码都是非标准的。值得注意的是,这也适用于非虚函数。

特定实现中的异常:

某些 C 实现允许“this == 0”,对标准行为提出警告。专门为此类实现而设计的库可能会利用此条件作为 hack,例如 VC 与 MFC 的配对。

其他注意事项:

超出严格的实现规则,其他因素可能会导致“this”== null 检查的存在。某些实例可以用作调试辅助工具,在先前由于调用者中的编码错误而遇到该情况时捕获错误。断言通常更适合此目的,为检测此类情况提供更合适的机制。

结论:

在标准 C 的上下文中,检查“this” == null 是不合理的。对空指针的方法调用本质上是未定义的行为,使得对此类检查的任何依赖都是不可靠的。如果在代码审查期间遇到这些检查,应该仔细检查并可能用更合适的错误处理机制替换。

以上是在 C 中检查'this”空值是否合理?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板