Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: coco_motorizado en 18 Mayo 2011, 11:31 am



Título: const_cast
Publicado por: coco_motorizado en 18 Mayo 2011, 11:31 am

Tras hacer el casting de la segunda linea "p2" no es un piloto sino una referencia a un piloto por lo que no puedo invocar al método introduce resultados.
(el find devuelve un const iterator de ahí el problema)
¿con que puedo llamar al metodo introduce_resultados?

            set<piloto,compara>::iterator itr_found=set_pil.find(p_prueba);

            piloto p2= const_cast< piloto& >(*itr_found);
 
            p2.Introduce_resultados(gran_premio,puesto);


Muchas graciasssssss


Título: Re: const_cast
Publicado por: Acermax en 18 Mayo 2011, 14:44 pm
Si no te entiendo mal, deberías llamar a introduce resultados así.

Código:
p2->Introduce_resultados (gran_premio,puesto);
//o bien
*(p2).Introduce_resultados(gran_premio,puesto);



Título: Re: const_cast
Publicado por: coco_motorizado en 18 Mayo 2011, 21:41 pm
p2 no vale xq no apunta exactamente al piloto en el q tengo q introducir la informacion sino simplemente a una referencia a él (si lo hago sobre p2 los datos no se introducen  en el piloto), lo que habría que hacer sería:

(*itr_found).Introduce_resultados(gran_premio, puesto)

pero esto falla por ser itr_found un const_iterator