Test Foro de elhacker.net SMF 2.1

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í.


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