• Sábado 14 de Diciembre de 2024, 11:47

Autor Tema:  Error con iterador  (Leído 726 veces)

Sankara

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Error con iterador
« en: Martes 9 de Junio de 2009, 13:49 »
0
while (!fich3.eof()) //leo de un fichero el nombre (string), identificador (int) y puesto de un empleado (int)
   {
      fich3>>nombre;
      fich3>>identificador;
      fich3>>puesto;
      set<empleado>::iterator itr=conjunto.begin(); //iterador del conjunto
      if ((itr!=conjunto.end()) && ((*itr).VerIde()==identificador))
      {
         (*itr).setIde(nombre,puesto);
         itr++;
      }
   }


Me da error en (*itr).setIde(nombre,puesto);  

 error: pasar âconst empleadoâ como el argumento âthisâ de âvoid empleado::setIde(const std::string&, const int&)â descarta a los calificadores

setIde es una función que devuelve void y modifica el identificador de una clase empleado.
¿Alguna solución?

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Error con iterador
« Respuesta #1 en: Martes 9 de Junio de 2009, 14:09 »
0
Usa las etiquetas de código y pon algo coherente (error: pasar âconst empleadoâ como el argumento âthisâ de âvoid empleado::setIde(const std::string&, const int&)â descarta a los calificadores  :wacko: )

Cita de: "Sankara"
setIde es una función que devuelve void y modifica el identificador de una clase empleado.
Mejor pon el prototipo del método.