Devi usare un puntatore o un reference alla classe base. Dato che non è possibile creare un vector di reference tocca usare i puntatori.
Versione semplice con gestione manuale della memoria.
vector<Event*> events;
events.push_back(new EventCiao);
events.push_back(new EventBo);
Versione fortemente consigliata con gestione automatica della memoria:
vector<std::unique_ptr<Event>> events;
events.push_back(std::make_unique<EventCiao>());
events.push_back(std::make_unique<EventBo>());