Título: Problema con iterador Publicado por: Kherom en 5 Enero 2013, 05:11 am Buenas, tengo un una clase que contiene un set de objetos, y un método encargado de llamar al método draw() de todos los objetos:
Código
Tal y como está el compilador me dice: Cita de: Compilador [Warning] passing 'const cube' as 'this' argument of 'void cube::draw()' discards qualifiers [-fpermissive] Con el flag -fpermissive se queda sólo en Warning, pero sin ella es un error y no compila. Sustituyendo el i->draw() por la parte comentada funciona, pero haciendo una copia del objeto, y quiero evitar eso. ¿Alguna idea de qué tengo que hacer? Título: Re: Problema con iterador Publicado por: Kherom en 5 Enero 2013, 05:24 am Perdón, ese error se solucionaba marcando la función draw() como const, mi problema es en otra:
Código
En éste caso en la línea 9 tengo el mismo error: Cita de: Compilador [Warning] passing 'const cubeBox' as 'this' argument of 'const void cubeBox::addCube(int, int, int)' discards qualifiers [-fpermissive] Pero no se soluciona añadiendo "const" a addCube() ya que de hecho modifica la clase. Además, aquí el truco de copiar el contenido a otro objeto no sirve ya que tengo que modificar el objeto contenido en el set y no otro. Título: Re: Problema con iterador Publicado por: Kherom en 5 Enero 2013, 19:56 pm Vale ya lo he solucionado: Resulta que los iteradores de los set son constantes para evitar que al modificar el objeto se pierda el orden, por ello tenía que hacer un const_cast (ya que en mi caso no modifico las variables que dependen del orden):
Código
|