当前位置:  开发笔记 > 编程语言 > 正文

避免在C++中进行空指针检查

如何解决《避免在C++中进行空指针检查》经验,为你挑选了2个好方法。

使用案例:

class B {

     int b;
     public:
         int getB() { 
               return b;
         }
 };

class A {
        B *b;
    public:
          int getB() {
              if (b ) {                      //How can I avoid the null check for b here
                  return b->getB();
              }
          }
  }

Michael.. 8

如果B在getB()中为null,那么您期望发生什么?如果它不是程序的有效状态,只需断言(b!= NULL).如果它是有效状态,则需要检查.

有些语言支持合同,因此您不需要手动编写检查代码,但遗憾的是C++没有.



1> Michael..:

如果B在getB()中为null,那么您期望发生什么?如果它不是程序的有效状态,只需断言(b!= NULL).如果它是有效状态,则需要检查.

有些语言支持合同,因此您不需要手动编写检查代码,但遗憾的是C++没有.



2> Nils Pipenbr..:

解决方案1:尽可能使用引用.

解决方案2:只需执行空指针检查,让编译器处理它们.如今,删除冗余空指针检查是标准的优化.除了大部分冗余之外,它们并不能捕获所有冗余.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有