107

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

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

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

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

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

4

2 に答える 2

167

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

#include <sstream>

//...
QString Stats_Manager::convertInt(int num)
{
    std::stringstream ss;   // <-- also note namespace qualification
    ss << num;
    return ss.str();
}
于 2012-08-01T01:46:11.837 に答える
10

そこに書かれているように、あなたはタイプするのを忘れます#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;

これをチェックしてください

于 2012-08-01T01:50:40.573 に答える