fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. struct Entity
  5. {
  6. virtual ~Entity() = default;
  7. virtual void Update() { std::cout << "Entity\n"; }
  8. };
  9.  
  10. struct NPC : Entity
  11. {
  12. virtual void Update() { std::cout << "NPC\n"; }
  13. };
  14.  
  15. struct Trap : NPC
  16. {
  17. virtual void Update() { std::cout << "Trap\n"; }
  18. };
  19.  
  20.  
  21. int main() {
  22. Entity the_entity;
  23. NPC npc;
  24. Trap trap;
  25. std::vector<Entity*> entities = {&the_entity, &npc, &trap};
  26.  
  27. for (auto* entity : entities)
  28. {
  29. entity->Update();
  30. }
  31. }
  32.  
Success #stdin #stdout 0s 3228KB
stdin
Standard input is empty
stdout
Entity
NPC
Trap