Qt c ++ aggregate 'std :: stringstream ss' eksik türe sahip ve tanımlanamıyor


98

Programımda tam sayıları dizelere dönüştüren şu işlev var:

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

Ama bunu ne zaman çalıştırsam şu hatayı alıyorum:

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

Bunun ne anlama geldiğinden pek emin değilim. Ancak nasıl düzelteceğinizi biliyorsanız veya daha fazla koda ihtiyacınız varsa lütfen yorum yapın. Teşekkürler.


48
#include <sstream>
Managu

1
Öte yandan, QString bir sayıdan bir dizge oluşturmak için statik bir işleve sahiptir. Bu oluyor QString :: numarayı .
cgmb

Yanıtlar:


155

Muhtemelen sınıfın ileriye dönük bildirimine sahipsiniz, ancak başlığı eklemediniz:

#include <sstream>

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

9

Orada yazılmış gibi yazmayı unutuyorsun #include <sstream>

#include <sstream>
using namespace std;

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

Ayrıca dönüştürmek için bazı başka yollar kullanabilirsiniz intiçin stringolduğu gibi,

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

bunu kontrol et!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.