NULL返回值类型为QList <float *> </float *>

时间:2013-12-19 08:00:21

标签: c++ qt null default qlist

我想为返回QList的方法返回一个默认的Null值(如果处理失败,我想返回)。

如何正确构建Null QList?

问候

3 个答案:

答案 0 :(得分:5)

一般来说,非指针类型没有“空值”。选项包括:

  • 失败时抛出异常
  • 如果结果永远不是有效结果,则返回一个空列表
  • 返回可以为空的包装类型,例如boost::optional<QList>std::pair<bool, QList>

答案 1 :(得分:1)

返回一个指向QList的指针,然后测试它是否为空指针,我想这是你的问题,对不起,如果我误解了

void someClass::test()
{
    std::shared_ptr<QList<float> > testList = doSomething()
    if(testList == nulllptr)
    {
        // Then its null
    }
    else
    {
       // Do whatever you want with it
    }
}

std::shared_ptr<QList<float>> someClass::doSomething()
{
    std::shared_ptr<QList<float>> someList; // = NULL at the moment 

    if(weWantValues) // Lets just pretend this bool knows if we want values 
    {
        someList = std::make_shared<QList<float>(); // now a shared pointer to a list
        // Populate with whatever values you want. use ".get()" or "->" to access list
    }

    // this may be null or populated so check if it == nullptr before using
    // Like we do in the function above
    return someList;
}

答案 2 :(得分:0)

您可以使用return {}代替nullptr,如下所示:

QList<QObject *> getModel(int id)
{
    if (id < 0)
        return {};

    return m_myModel->model();
}