Невозможно преобразовать QJsonObject в int

Так что я:

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

Решение

Вы должны добавить возвращаемый тип в начало прототипа функции:

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

Если вы не укажете тип возвращаемого значения, предполагаемый тип возвращаемого значения по умолчанию: intВот почему вы получили эту ошибку.

3

Другие решения

Если вы напишите такую ​​функцию:

MyFunc(double, float) {
...
}

Тогда предполагается, что возвращаемый тип int потому что тип возврата не был указан. Если вы хотите, чтобы он возвращал что-то еще, вам нужно указать тип возвращаемого значения:

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

По вопросам рекламы [email protected]