Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.97 KB | None | 0 0
  1. bool can_wield(const Drawable& object)
  2. {
  3.     const Wielder* wielder_component = dynamic_cast<const Wielder*>(&object);
  4.     return wielder_component != nullptr;
  5. }
  6.  
  7. bool is_wieldable(const Drawable& object)
  8. {
  9.     const Wieldable* wieldable_component = dynamic_cast<const Wieldable*>(&object);
  10.     return wieldable_component != nullptr;
  11. }
  12.  
  13. int main()
  14. {
  15.     Drawable* player = new Player({{0.0f, 0.0f}}, 0.0f, {{1.0f, 1.0f}});
  16.     std::cout << "Can the player wield things: " << can_wield(*player) << "\n";
  17.     Drawable* pistol = new Pistol({{0.0f, 0.0f}}, 0.0f, {{1.0f, 1.0f}});
  18.     std::cout << "Can a pistol be wielded: " << is_wieldable(*pistol) << "\n";
  19.     Drawable* dr_evil = new Criminal({{0.5f, 0.5f}}, 0.0f, {{1.0f, 1.0f}});
  20.     std::cout << "Is Dr. Evil a good guy: " << dr_evil->isGoodGuy() << "\n";
  21.     // We must delete these, or we will create memory-droplets (a small memory leak).
  22.     delete player;
  23.     delete pistol;
  24.     delete dr_evil;
  25.     return 0;
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement