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