Qt C++ aggregate 'std:: stringstream ss' a un type incomplet et ne peut pas être défini

j'ai cette fonction dans mon programme qui convertit des entiers en chaînes:

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

Mais quand je l'exécute j'obtiens l'erreur:

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

Je ne suis pas vraiment sûr de ce que cela signifie. Mais si vous maintenant comment le corriger ou besoin de plus de code s'il vous plaît juste commentaire. Grâce.

73
demandé sur tyty5949 2012-08-01 05:40:00

2 réponses

vous avez probablement une déclaration forward de la classe, mais n'avez pas inclus l'en-tête:

#include <sstream>

//...
QString Stats_Manager::convertInt(int num)
{
    std::stringstream ss;   // <-- also note namespace qualification
    ss << num;
    return ss.str();
}
119
répondu Luchian Grigore 2012-08-01 01:46:11

comme c'est écrit là-haut, vous oubliez de taper #include <sstream>

#include <sstream>
using namespace std;

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

vous pouvez également utiliser d'autres moyens pour convertir int en string , comme

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

vérifier ce!

4
répondu booiljoung 2017-05-23 12:18:10