Qt c ++ aggregate 'std :: stringstream ss' memiliki tipe yang tidak lengkap dan tidak dapat didefinisikan


97

Saya memiliki fungsi ini dalam program saya yang mengubah bilangan bulat menjadi string:

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

Tetapi ketika saya menjalankan ini saya mendapatkan kesalahan:

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

Saya tidak begitu yakin apa artinya. Tetapi jika Anda tahu cara memperbaikinya atau membutuhkan kode lagi, silakan komentar saja. Terima kasih.


48
#include <sstream>
Managu

1
Selain itu, QString memiliki fungsi statis untuk membangun string dari sebuah bilangan. Ini QString :: number .
cgmb

Jawaban:


154

Anda mungkin memiliki deklarasi maju kelas, tetapi belum menyertakan header:

#include <sstream>

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

9

Seperti tertulis di sana, Anda lupa mengetik #include <sstream>

#include <sstream>
using namespace std;

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

Anda juga dapat menggunakan beberapa cara lain untuk mengonversi intmenjadi string, seperti

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

periksa ini!

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.