Ты проходишь собеседование на должность middle-level разработчика C++ в игровую студию. Тимлид рассказывает, что у них есть система сущностей (entity system), где базовый класс Entity имеет метод update(), но когда игровой цикл вызывает update() через указатели на базовый класс, враги и игроки ведут себя одинаково вместо того, чтобы использовать свою специализированную логику. Он показывает тебе фрагмент кода:
class Entity {
public:
void update() { std::cout << "Entity update\n"; }
};
class Player : public Entity {
public:
void update() { std::cout << "Player update\n"; }
};
Entity* e = new Player();
e->update(); // prints "Entity update"