我想为返回QList的方法返回一个默认的Null值(如果处理失败,我想返回)。
如何正确构建Null QList?
问候
答案 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();
}