вектор объектов

Я попытался добавить объекты в вектор «содержимого» и использовать show () для всех из них. Но объекты, которые являются дочерними (A, B) «Base», ведут себя так, как будто они «Base», что не является моим намерением. Кажется, я пытался использовать виртуальные функции, но это не работает.

Я надеюсь, что код будет говорить сам за себя.

class Base {
    public:
        virtual void show() { cout << "Base "; }
};

class A : public Base {
    public:
        virtual void show() { cout << "A "; }
};

class B : public Base {
    public:
        virtual void show() { cout << "B"; }
};



vector<Base> content;

void add(Base &o) {
    content.push_back(o);
}

A test1;
B test2;

add(test1);
add(test2);

for (size_t i = 0; i < content.size(); i++) {
        collection[i].show(); // output is: Base Base instead of A B
}   

Заранее спасибо.

Ответы на вопрос(5)

Ваш ответ на вопрос