18/07/2011, 00:27
|
| | Fecha de Ingreso: junio-2008 Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 16 años, 5 meses Puntos: 61 | |
Respuesta: Method overriding, Herencia y Vector. El problema esta en que push_back() inserta copias de los elementos, y al hacer el vector un vector de acciones, se invoca el constructor de copia de la clase base.
Alternativa:
Hacer vector de punteros a accion
vector<accion*> v;
y en la clase base cambiar
void ejecutar();
por virtual void ejecutar();
Al hacer push_back, cambias a insertar las direcciones de memoria
v.push_back( a ) cambia a v.push_back( &a )
Al invocar,
v[i].metodo() cambia a v[i]->metodo |