>Hice varios objetos que heredan de oSoldado, y
>por ejemplo, la funcion animacion() es diferente
>para cada unos de los objetosque derivan(o heredan)
>de oSoldado, pero al compilarlo al parecer se ejecuta
>la funcion animacion() de el objeto base (oSoldado) en
>lugar de ejecutar la funcion animacion de cada uno de
>los objetos hijos.
Hola: aún no he visto el código fuente ya que ahora mismo
estoy en el trabajo. A ver si te puedo dar alguna pista.
Si tienes una clase base llamada oSoldado y una clase
oSoldadoInfanteria que deriva de oSoldado, entonces:
------8<------------8<------------8<------------8<------
oSoldadoInfanteria *objeto;
oSoldado *soldado1;
oSoldadoInfanteria *soldado2;
objeto = new oSoldado;
soldado1 = objeto;
soldado2 = objeto;
// Esto llamará a oSoldado::animacion()
soldado1->animacion();
// Esto llamará a oSoldadoInfanteria::animacion()
soldado2->animacion();
------8<------------8<------------8<------------8<------
¿ Entiendes ? El método invocado depende del tipo de
puntero. Como ves en el ejemplo, el objeto
es el mismo, pero accedemos a él a través de 2 punteros
de tipo diferente (oSoldado y oSoldadoInfanteria).