web-dev-qa-db-ja.com

Qt C ++集計 'std :: stringstream ss'は不完全な型であり、定義できません

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

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

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

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

私は本当にそれが何を意味するのか分からない。しかし、あなたがそれを修正する方法を知っているか、それ以上のコードが必要な場合はコメントしてください。ありがとう。

85
tyty5949

あなたはおそらくクラスの前方宣言を持っていますが、ヘッダーを含めていません:

#include <sstream>

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

そこに書かれているように、#include <sstream>と入力するのを忘れます

#include <sstream>
using namespace std;

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

intstringに変換する他の方法も使用できます。たとえば、

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

チェック this!

6
booiljoung