Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/10/2013, 10:24
rodolfos
 
Fecha de Ingreso: octubre-2013
Mensajes: 3
Antigüedad: 10 años, 7 meses
Puntos: 0
C++ duda sobre clases, subclases, herencia y vectores

Buenas, os comento a ver si alguien sabe ayudarme.

Estoy haciendo un juegucho en C++ para pillar un poco de solutura con él (porque estoy acostumbrado a Python y en comparación no veas lo quisquilloso que es C xD) y me he encontrado con un problema.

He creado una clase "personaje", un puñado de subclases de esa clase para distintos tipos de personajes (mago, ladron, etc...), y otra clase "equipo" donde entre otras cosas guardo un vector de tipo "personaje" que reperesentan un equipo. Tal que así:

class personaje{
protected:
blablabla;
public:
atacar();
}

class mago : public personaje{
protected:
blablablu;
public:
atacar(){codigo correspondiente a la clase};
}

class equipo{
public:
vector<personaje> lista_personajes;
metodos varios();
}


La cuestión es que me gustaría hacer un simple bucle en el que recorrer el vector de peronajes y acceder a un metodo común a todos (atacar()) pero que es diferente para cada uno.

El problema es que como es un vector de "personaje" porque puede entrar cualquier subclase, aunque lo llene directamente con subclases (ej: [mago, ladron, tanque] ) cuando hago v[i].atacar(), me busca el metodo en la clase "personaje", no en las subclases.

Hay alguna manera de hacer que al llamar al metodo de la clase lo busque en la subclase antes?

Gracias.