Так что я:
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) {
...
}