gpt4 book ai didi

c++ - 创建返回 QList 的函数

转载 作者:行者123 更新时间:2023-11-30 02:02:21 25 4
gpt4 key购买 nike

来自 C# 背景,我有一些需要改变的习惯。我试图从一个函数返回一个 QList 。编译器错误消息是请求从“QList*”转换为非标量类型“QList”。这是函数:

QList<int> toCategories(QVariant qv)
{
QList<int>categories = new QList<int>();
if(qv.isValid() && qv.type() == QVariant::List)
{
foreach(QVariant category,qv.toList()){
categories.append(category.toInt() );
}
}
return categories;
}

我希望能提供指向文档的链接或使用正确语法的函数

最佳答案

错误是指您试图在非指针 QList 和指向 QList 的指针之间进行转换。您需要使用指向 QList 的指针,如下所示:

QList<int>* toCategories(QVariant qv)
{
QList<int>* categories = new QList<int>();
if(qv.isValid() && qv.type() == QVariant::List)
{
foreach(QVariant category,qv.toList()){
categories->append(category.toInt() );
}
return categories;
}
}

或者,您可以使用非指针QList:

QList<int> toCategories(QVariant qv)
{
QList<int> categories;
if(qv.isValid() && qv.type() == QVariant::List)
{
foreach(QVariant category,qv.toList()){
categories.append(category.toInt() );
}
return categories;
}
}

由于您是 C++ 新手,我建议您查看 this question .

如果我还可以指出,您列出的函数存在某个路径不返回值的问题(尽管我怀疑这可能是因为您只复制粘贴了一部分代码)。

关于c++ - 创建返回 QList<int> 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13243651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com