Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/11/2011, 11:59
Avatar de shujidan
shujidan
 
Fecha de Ingreso: abril-2011
Mensajes: 121
Antigüedad: 13 años, 8 meses
Puntos: 5
Como castear lista con objetos de distintos tipos

Que tal miren mi problema es que tengo una lista con objetos de diferentes tipos, los tengo guardados en una lista con tipo void*

Código C++:
Ver original
  1. std::list<void *> objetos;
  2.  
  3. objetos.push_back(objetoTipoTriangulo);
  4. objetos.push_back(objetoTipoCuadrado);

el problema es que al momento de usarlos no sé como castearlos automáticamente mientras se recorre un iterador para poder usar los atributos de cada objeto. Digamos que en la lista no todos los objetos son Cuadrados, como comprobar de que tipo es el objeto para poder castearlo, intenté con typeid(objeto).name() pero me devuelve void* (el tipo del objeto en la lista).
Código C++:
Ver original
  1. std::list<void*>::iterator p = objetos.begin();
  2. while(p != objetos.end()) {
  3.     ((Cuadrado*)*p)->mostrar();
  4.     p++;
  5. }

Última edición por shujidan; 07/11/2011 a las 12:31