无法在 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,这就是您收到此错误的原因。