const_cast

Iniciado por coco_motorizado, 18 Mayo 2011, 11:31 AM

0 Miembros y 1 Visitante están viendo este tema.

coco_motorizado


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

Acermax

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);


coco_motorizado

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