if语句中的C++ QList,默认值是多少?

标签 c++ qt if-statement qlist

我找到了一些包含这些奇怪行的代码示例

QList<TDataXml *> *newXMLData = input->getValue<QList<TDataXml *>>();
    if(newXMLData) 
    {
        // do things
    }

我不明白 if(newXMLData)。这是一个 QList。陈述什么时候应该为真或为假?为什么不改用 Qt isEmpty() 方法?

谢谢

最佳答案

if(newXMLData) 检查是否为空,因为 newXMLData 是一个指针,因此它可能不指向任何对象,在这种情况下它的值为 nullptr (或 C++03 中的 NULL)。

如果 newXMLData 不是 nullptr,那么它将是 true 并且 if block 将执行,否则 falseif-block 将不会执行。

它与 (C++11) 相同:

if(newXMLData != nullptr) //or if(newXMLData != NULL) in pre C++11
{
  //your code
}

关于if语句中的C++ QList,默认值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11205061/

相关文章:

c++ - 使用光标操作打印垂直直方图 C++[ncurses][解决了 w/o ncurses]

c++ - QT4:如何重启应用程序?重新设置?

regex - 使用 bash 脚本逐行读取文件

sql - 如果存在问题,Oracle sql 返回 true

c++ - 内存访问回调?

c++ - 防止数组从 *[N] 衰减到 **

c++ - QSharedPointer,如何传递它们,我需要它们吗?

excel - 我的 if 语句似乎不起作用。可能是另一种方式?

c++ - synology 交叉编译 gcc -std=c++0x

c++ - 在 C++ 代码中包含 LAPACK