Я новичок в C++, но столкнулся с проблемой, которую не могу решить. Я буду использовать автомобили, чтобы проиллюстрировать проблему, просто чтобы упростить задачу. Итак, допустим, у меня есть автомобиль базового класса, и у меня есть разные марки, которые наследуются от этого класса. Вот так:
class Car
{
public:
Car();
};
class Ford: public Car
{
public:
Ford();
void drive();
void park();
};
Вся идея состоит в том, чтобы собрать все эти разные автомобили в один вектор типа Car. Вот так:
vector<Car*> cars;
cars.push_back(new Ford());
cars.back()->drive(); //this won't work
Как я могу вызвать производную функцию для экземпляра базового класса? Обратите внимание, что я хочу поместить все это в один вектор. Причина этого в том, что я хочу использовать только последний добавленный экземпляр производного класса автомобиля (в данном случае производным классом автомобиля является ford). Также обратите внимание, что все классы автомобилей будут иметь одинаковые функции.