Soy bastante nuevo en C++, pero me encontré con un problema que parece que no puedo resolver. Utilizaré automóviles para ilustrar el problema, solo para facilitar las cosas. Bien, digamos que tengo un auto de clase base y tengo diferentes marcas que heredan de esa clase. Como tal:Función derivada de llamada de C++ desde la instancia de clase base
class Car
{
public:
Car();
};
class Ford: public Car
{
public:
Ford();
void drive();
void park();
};
La idea es juntar todos estos diferentes coches en un solo vector del tipo Coche. Como lo siguiente:
vector<Car*> cars;
cars.push_back(new Ford());
cars.back()->drive(); //this won't work
¿Cómo puedo llamar a la función derivada en la instancia de la clase base? Tenga en cuenta que quiero colocar todo esto en un solo vector. La razón detrás de esto es porque solo quiero usar la última instancia derivada de clase de automóvil que se ha agregado. (En este caso, la clase de vehículo derivada es ford). También tenga en cuenta que todas las clases de automóviles tendrán las mismas funciones.
muchas gracias por la respuesta excelente y rápido, esto hizo el truco. – Dan