Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/01/2012, 18:27
tig0
 
Fecha de Ingreso: agosto-2009
Mensajes: 16
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Principiante : método toString()

la sobrecarga la tienes bien hecha, el problema probablemente lo tienes en ese vector o en lo que estas devolviendo con get()

podrias mostrar get() y la forma en la que estas inicializando el vector?

[edit]

perdon, no me habia fijado que habias dicho que era un vector de enteros.

lo que tu estas haciendo es out += get(i) lo que probablemente te devolvera el entero en ese indice.

el problema es que la clase string no admite enteros como parametro para el operador +=

lo que tendrias que hacer para poder formatear los enteros seria usar la clase stringstream que te lo formateara correctamente. te pongo un codigo que te he hecho de ejemplo

tendras que incluir, a parte, la libreria <sstream>

Código C++:
Ver original
  1. struct kt
  2. {
  3.     int x;
  4.     float _f;
  5. };
  6.  
  7. ostream &operator << (ostream &out, kt &t)
  8. {
  9.     string k = "";
  10.     out << t.x << ", " << t._f << endl;
  11.     return out;
  12. }
  13.  
  14. string toString(kt &tmp)
  15. {
  16.  
  17.     stringstream p;
  18.     p << tmp.x << ", " << tmp._f << " !!!!!!!!!!!" << endl;
  19.     return p.str();
  20. }
  21.  
  22.  
  23. int main()
  24. {
  25.  
  26.     kt k = { {13123}, {1.23123f}, } ;
  27.     cout << k << endl;
  28.     cout << toString(k) << endl;
  29.     cin.get();
  30.     return 0;
  31. }

Última edición por tig0; 19/01/2012 a las 18:38