私のプログラムには整数を文字列に変換するこの関数があります:
QString Stats_Manager::convertInt(int num)
{
stringstream ss;
ss << num;
return ss.str();
}
しかし、これを実行するとエラーが発生します:
aggregate 'std::stringstream ss' has incomplete type and cannot be defined
私は本当にそれが何を意味するのか分からない。しかし、あなたがそれを修正する方法を知っているか、それ以上のコードが必要な場合はコメントしてください。ありがとう。
あなたはおそらくクラスの前方宣言を持っていますが、ヘッダーを含めていません:
#include <sstream>
//...
QString Stats_Manager::convertInt(int num)
{
std::stringstream ss; // <-- also note namespace qualification
ss << num;
return ss.str();
}
そこに書かれているように、#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;
チェック this!