无法在 return 中将 'QJsonObject' 转换为 'int'
Cannot convert 'QJsonObject' to 'int' in return
所以我有:
QJsonArray nodeCollection;
nodeCollection.push_back(ListElements(program, "title", "lang"));
我的 ListElements
方法声明 QJsonObject
,用我需要的东西填充它,并且应该 return 对象以便它可以被推送到 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++ 的新手,我用谷歌搜索了这个问题并取得了一些成功,但没有具体的例子来解决这个问题。
我做错了什么?我怎样才能告诉方法它应该 return QJsonObject
而不是 int
?
如果你这样写一个函数:
MyFunc(double, float) {
...
}
则假设return类型为int
,因为没有指定return类型。如果你想要它 return 其他东西你需要指定 return 类型:
QJsonObject MyFunc(double, float) {
...
}
您必须将 return 类型添加到函数原型的开头:
QJsonObject ListElements (QDomElement root, QString tagname, QString attribute)
如果您没有指定 return 类型,默认假定的 return 类型是 int
,这就是您收到此错误的原因。
所以我有:
QJsonArray nodeCollection;
nodeCollection.push_back(ListElements(program, "title", "lang"));
我的 ListElements
方法声明 QJsonObject
,用我需要的东西填充它,并且应该 return 对象以便它可以被推送到 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++ 的新手,我用谷歌搜索了这个问题并取得了一些成功,但没有具体的例子来解决这个问题。
我做错了什么?我怎样才能告诉方法它应该 return QJsonObject
而不是 int
?
如果你这样写一个函数:
MyFunc(double, float) {
...
}
则假设return类型为int
,因为没有指定return类型。如果你想要它 return 其他东西你需要指定 return 类型:
QJsonObject MyFunc(double, float) {
...
}
您必须将 return 类型添加到函数原型的开头:
QJsonObject ListElements (QDomElement root, QString tagname, QString attribute)
如果您没有指定 return 类型,默认假定的 return 类型是 int
,这就是您收到此错误的原因。