Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/01/2012, 18:00
Avatar de SetheR
SetheR
 
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 3 meses
Puntos: 44
Principiante : método toString()

Hola muy buenas. Soy iniciado en c++ recientemente (aunque se programar en otros lenguajes como java).

Tengo un problema al intentar sobrecargar un operador <<. Consiste en qe no sé generar un string a partir de un array de enteros.

Estoy intentando implementar un clase "conjunto" (ya sé que existen clases similares ya hechas, sólo quiero aprender), y quiero que al hacer

Código C++:
Ver original
  1. cout << miconjunto <<endl

Me muestre el array que contiene los datos del conjunto por pantalla.
Así lo tengo actualmente:
(el array está relleno correctamente).


Código C++:
Ver original
  1. string conjunto::toString(){
  2.     int i;
  3.     string out;
  4.     for(i=0;i<MAX;i++)
  5.     {
  6.         if(this->get(i) == '\0') break;
  7.         //cout << this->get(i) << endl;
  8.         out += this->get(i);   
  9.         //out.append(" " + c.get(i));
  10.     }
  11.     return out;
  12. }
  13.  
  14.  
  15. ostream & operator << (std::ostream & stream, conjunto & c)
  16. {
  17.     stream  << " [" << c.toString() << "] ";
  18.     return stream;
  19. }

Pero la salida del programa me muestra sólo simbolos extraños y líneas dobles.

Sé que estoy haciendo algo mal en la concatenación, pero no doy con la tecla. A ver si alguien me ilumina un poco.
Saludos