Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: .:BlackCoder:. en 15 Julio 2010, 01:08 am



Título: Problema con clase list
Publicado por: .:BlackCoder:. en 15 Julio 2010, 01:08 am
Wenas estaba ayudando a alguien con un ejercicio de listas usando la clase list, porque aun no se de listas  :xD

Y pes me da un error con el iterador, no se si es un error basico sobre los iteradores o algo mas intenso. Aca dejo las secciones de codigo:

Código
  1. typedef struct {
  2.    unsigned int NumPasaport;
  3.    string Nombre;
  4.    unsigned int CI;
  5.    string Destino, Hora;
  6. } Pasajeros;

Código
  1. list<Pasajeros> pasajero;

Código
  1.    list<Pasajeros>::iterator it=pasajero.begin();
  2.    cout << *it << endl;//Aca

El error:
no match for 'operator<<' in 'std::cout << it'

En el wxDev
Saludos...


Título: Re: Problema con clase list
Publicado por: do-while en 15 Julio 2010, 01:40 am
¡Buenas!

Hace mucho tiempo que no trabajo con C++, y no se si lo que digo servira para algo o no pero bueno. Puede ser un problema con la preferencia de los operadores << y *, prueba a poner un parentesis para agrupar *it->(*it). Aunque este no sea el problema, para evitar errores producidos por la preferencia de los operadores, siempre que tengas alguna duda, utiliza los parentesis.

Lo segundo que se me ocurre es que no hayas sobrecargado el operador << en la clase Pasajeros. Por si no lo has sbrecargado nunca aqui va un esquema:

Código
  1. friend /* solo en el prototipo */ ostream& operator<<(ostream& flujoSalida,Tuclase &unObjeto)
  2. {
  3.    //aqui das salida a la informacion del objeto de tu clase
  4.  
  5.    return flujoSalida;
  6. }
  7.  

Si es por alguna otra razon, ya me corregira alguien y nos sacara de dudas  :xD

¡Saludos!


Título: Re: Problema con clase list
Publicado por: .:BlackCoder:. en 15 Julio 2010, 02:01 am
 :laugh: Ni sabia que lo debia sobrecargar  :xD

Pero yo no lo llegue a estudiar y pes al amigo q se lo mandaron tampoco... me toca hacerlo de otra forma...

Menos mal q es eso  :xD Crei q por no poder seguir estudiando habia perdido la practica  :silbar:

Saludos... Gracias, voy a ver como lo hago de otra forma, porq si se lo hago con sobrecarga de operadores, aparte de tener q estudiar sobre eso, le pondrian mala nota puesto q no se lo han dado en clases...


Título: Re: Problema con clase list
Publicado por: SirLanceCC en 15 Julio 2010, 02:21 am
Código
  1. cout << it->Nombre << endl;

Para fácil y rápido, creo que así debería funcionar.


Título: Re: Problema con clase list
Publicado por: .:BlackCoder:. en 15 Julio 2010, 02:27 am
Seh asi lo toy haciendo... Parece que si perdi la practica puse it.xx  :laugh: pero ya lo habia solucionado... Gracias por ambas respuestas...

Saludos...


Título: Re: Problema con clase list
Publicado por: leogtz en 15 Julio 2010, 02:41 am
O así:
Código:
cout << (*it).CI endl;