0

所以我有:

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

4

2 回答 2

3

您必须将返回类型添加到函数原型的开头:

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

如果您未指定返回类型,则默认假定返回类型为int,这就是您收到此错误的原因。

于 2017-12-04T23:24:42.697 回答
2

如果你写一个这样的函数:

MyFunc(double, float) {
   ...
}

然后假定返回类型为 ,int因为没有指定返回类型。如果您希望它返回其他内容,则需要指定返回类型:

QJsonObject MyFunc(double, float) {
   ...
}
于 2017-12-04T23:24:00.860 回答