所以我有:
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
的方法?
答案 0 :(得分:3)
您必须将返回类型添加到函数原型的开头:
QJsonObject ListElements (QDomElement root, QString tagname, QString attribute)
如果未指定返回类型,则默认的假定返回类型为int
,这就是您收到此错误的原因。
答案 1 :(得分:2)
如果你写这样的函数:
MyFunc(double, float) {
...
}
然后假定它的返回类型为int
,因为没有指定返回类型。如果您希望它返回其他内容,则需要指定返回类型:
QJsonObject MyFunc(double, float) {
...
}