无法将"QJsonObject"转换为"int"作为回报

Cannot convert 'QJsonObject' to 'int' in return

本文关键字:int 回报 QJsonObject 转换      更新时间:2023-10-16

所以我有:

QJsonArray nodeCollection;
nodeCollection.push_back(ListElements(program, "title", "lang"));

和我的ListElements方法声明QJsonObject,用我需要的东西填充它,并应返回对象,以便将其推到nodeCollection数组变量:

ListElements (QDomElement root, QString tagname, QString attribute)
{
         auto nodeData = QJsonObject(
            {
            qMakePair(QString(itemElement.tagName()), QJsonValue(itemElement.text())),
            qMakePair(QString("lang"),QJsonValue(itemElement.attribute("lang"))),
            });
            return nodeData;  // <-- error
        }
    }
}

我遇到的错误是:

error: cannot convert 'QJsonObject' to 'int' in return

我显然是C 的新手,我已经成功地搜索了这个问题,但是没有具体的示例如何解决此问题。

我在做什么错?我该如何分辨该方法应该返回QJsonObject而不是int

您必须将返回类型添加到函数原型的开头:

QJsonObject ListElements (QDomElement root, QString tagname, QString attribute)

如果未指定返回类型,则默认假定的返回类型为 int,这就是为什么您遇到此错误的原因。

如果写这样的函数:

MyFunc(double, float) {
   ...
}

然后假定它具有int的返回类型,因为尚未指定返回类型。如果您希望它返回其他内容,则需要指定返回类型:

QJsonObject MyFunc(double, float) {
   ...
}