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

C++避免将NULL比较为0

如何解决《C++避免将NULL比较为0》经验,为你挑选了1个好方法。

因为在C++中,NULL是必不可少的.每次我有一个未初始化的变量设置为NULL,之后我想通过将它与NULL进行比较来检查是否初始化了这个变量.但是,如果变量恰好在某处分配给0,那么我无法判断它是否已经初始化.我肯定可以做一些工作来避免使用另一个包装对象来包装变量或使用标志的情况.但我正在寻找更优雅的解决方案.例如:

int b[4] = {1,2,3,0};
int a = NULL;
int i = 0;
while(true){
    if(a == 0)return;
    a = b[i++];
}

所以这里它将立即进入if语句,但我想等到b的最后一个元素被分配给0



1> Richard Hodg..:

我想你要找的是boost::optional.

#include 

...

boost::optional maybe_int;

...

if (maybe_int) // test if it has been assigned to
{
    if (maybe_int.value() == 0) // has is been set to zero?
    {
        // ...
    }
}    

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