Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Polimorfismo ¿Qué objeto soy?

Estas en el tema de Polimorfismo ¿Qué objeto soy? en el foro de C/C++ en Foros del Web. Mi duda es "sencilla" Tengo 3 clases. Una clase base, y 2 que derivan de esta. Ahora, fuera, en el main, tengo un array de ...
  #1 (permalink)  
Antiguo 19/05/2011, 02:59
 
Fecha de Ingreso: mayo-2007
Mensajes: 200
Antigüedad: 17 años
Puntos: 1
Polimorfismo ¿Qué objeto soy?

Mi duda es "sencilla"

Tengo 3 clases. Una clase base, y 2 que derivan de esta.
Ahora, fuera, en el main, tengo un array de objetos de la clase base, y utilizo polimorfismo (métodos virutal) para ejecutar los métodos de las clases derivadas según correspondan.

Pero, ¿cómo puedo saber que objeto estoy leyendo en este momento? Es decir, cuando yo estoy en Base[i]->mostrar(); esto me lleva automáticamente al método mostrar del objeto correspondiente. ¿Pero cómo puedo saber qué objeto es exactamente el que está guardado en esa posición?

Algo que me diga: hey! soy un objeto de la clase derivada 1, o hey! soy un objeto de la clase base, ¿cómo lo identifico?

¿Esto se puede hacer?
__________________
Blog: http://a-dream-of-dragon.blogspot.com
  #2 (permalink)  
Antiguo 19/05/2011, 04:46
 
Fecha de Ingreso: abril-2011
Mensajes: 88
Antigüedad: 13 años
Puntos: 24
Respuesta: Polimorfismo ¿Qué objeto soy?

El polimorfismo trata de lo contrario, ejecutar los métodos de las clases derivadas sin saber exactamente que clase es. Pero para solucionar tu duda, lo más fácil que se me occurre es tener una variable en la clase base que defina el tipo de clase y esta es cambiada en el constructor de cada derivación.
__________________
Foros Desarrollo de Juegos
  #3 (permalink)  
Antiguo 19/05/2011, 06:15
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Polimorfismo ¿Qué objeto soy?

Hay una función que te dice de qué clase es el objeto, en Java si tu a un objeto lo comparas con isInstanceOf y pones la clase, te dirá si el objeto es de esa clase.

Se que en C hay una instrucción similar pero no me acuerdo cuál es.
  #4 (permalink)  
Antiguo 19/05/2011, 18:01
 
Fecha de Ingreso: febrero-2003
Ubicación: D.F.
Mensajes: 163
Antigüedad: 21 años, 2 meses
Puntos: 22
Respuesta: Polimorfismo ¿Qué objeto soy?

La clase es type_info.
  #5 (permalink)  
Antiguo 19/05/2011, 22:43
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Respuesta: Polimorfismo ¿Qué objeto soy?

En C++ hay una forma usando el operador dynamic_cast.
No es algo que se use a menudo ya que como te dicen es como lo contrario al polimorfismo, pero si se puede hacer.

Investiga ese operador exclusivo de C++.

Saludos

Etiquetas: objeto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:10.