2012-08-01 7 views
67

Tengo esta función en mi programa que convierte los números enteros a cadenas:Qt C++ agregada 'std :: stringstream ss' tiene tipo incompleto y no puede ser definida

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

Pero cuando cada vez que corro esta me sale el error :

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

No estoy muy seguro de lo que eso significa. Pero si ahora cómo solucionarlo o si necesita más código, solo comente. Gracias.

+37

'#include ' – Managu

+1

Como nota aparte, QString tiene una función estática para construir una cadena a partir de un número. Es [QString :: number] (http://doc.qt.nokia.com/4.8-snapshot/qstring.html#number). – cgmb

Respuesta

106

es probable que haya una declaración delante de la clase, pero no han incluido el encabezado:

#include <sstream> 

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

Como está escrito allí, se olvida de escribir #include <sstream>

#include <sstream> 
using namespace std; 

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

También puede utilice otras formas de convertir int en string, como

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

check this!

+3

'using std;' no es válido. ¿Has intentado compilar? –

Cuestiones relacionadas