Qt c ++集計 'std :: stringstream ss'の型が不完全であり、定義できません


96

私のプログラムには、整数を文字列に変換するこの関数があります。

    QString Stats_Manager::convertInt(int num)
    {
        stringstream ss;
        ss << num;
        return ss.str();
    }

しかし、これを実行すると常にエラーが発生します:

aggregate 'std::stringstream ss' has incomplete type and cannot be defined

どういう意味かよくわかりません。しかし、それを修正する方法を知っている場合、またはさらにコードが必要な場合は、コメントしてください。ありがとう。


47
#include <sstream>
Managu 2012

1
余談ですが、QStringには数値から文字列を作成するための静的関数があります。それはだQStringの::番号を
cgmb

回答:


153

おそらくクラスの前方宣言がありますが、ヘッダーが含まれていません:

#include <sstream>

//...
QString Stats_Manager::convertInt(int num)
{
    std::stringstream ss;   // <-- also note namespace qualification
    ss << num;
    return ss.str();
}

9

そこに書かれているように、タイプするのを忘れます #include <sstream>

#include <sstream>
using namespace std;

QString Stats_Manager::convertInt(int num)
{
   stringstream ss;
   ss << num;
   return ss.str();
}

また、変換するために、いくつかの他の方法を使用することができますintするstringように、

char numstr[21]; // enough to hold all numbers up to 64-bits
sprintf(numstr, "%d", age);
result = name + numstr;

これをチェック

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.