2017-12-04 13 views
0

に「int型」から「QJsonObject」に変換できません。だから私は持っている: リターン

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++に新たなんだと私はいくつかの成功を収めて、この問題をGoogleで検索していないが、どのようにこの問題に対処するための具体的な例できました。

私は間違っていますか? intではなく、QJsonObjectを返す方法を教えてください。

+2

メソッド 'ListElements'の欠落した戻り値の型は、デフォルトで' int'戻り値の型です。コンパイラの警告/エラーレベルの検出も増やす必要があります。あなたが既にこれを知っているなら、あなたは誤字のように質問を閉じることを提案します。 –

+1

C/C++では、メソッドの戻り値の型をメソッド名の前に記述します。例えば: 'float getFloatNumber(char * str){.....}' –

+1

@SisterFisterよ、そうだった!とてもシンプルで、私は自分自身を蹴っています。 – Romy

答えて

2

:あなたはそれが何かを返したい場合は、戻り値の型を指定する必要が

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

あなたはそうではない場合戻り値の型を指定すると、デフォルトの戻り値の型はintとなり、このエラーが発生します。

2

あなたはこのような関数を記述する場合:

MyFunc(double, float) { 
    ... 
} 

そして、それは何の戻り値の型が指定されていないためintの戻り値の型を持っていると想定されます。あなたは関数プロトタイプの先頭に戻り値の型を追加する必要が

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