C++ Вызов производной функции из экземпляра базового класса

Я новичок в 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). Также обратите внимание, что все классы автомобилей будут иметь одинаковые функции.

8
задан Dan 2 April 2012 в 10:37
поделиться