Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool can_wield(const Drawable& object)
- {
- const Wielder* wielder_component = dynamic_cast<const Wielder*>(&object);
- return wielder_component != nullptr;
- }
- bool is_wieldable(const Drawable& object)
- {
- const Wieldable* wieldable_component = dynamic_cast<const Wieldable*>(&object);
- return wieldable_component != nullptr;
- }
- int main()
- {
- Drawable* player = new Player({{0.0f, 0.0f}}, 0.0f, {{1.0f, 1.0f}});
- std::cout << "Can the player wield things: " << can_wield(*player) << "\n";
- Drawable* pistol = new Pistol({{0.0f, 0.0f}}, 0.0f, {{1.0f, 1.0f}});
- std::cout << "Can a pistol be wielded: " << is_wieldable(*pistol) << "\n";
- Drawable* dr_evil = new Criminal({{0.5f, 0.5f}}, 0.0f, {{1.0f, 1.0f}});
- std::cout << "Is Dr. Evil a good guy: " << dr_evil->isGoodGuy() << "\n";
- // We must delete these, or we will create memory-droplets (a small memory leak).
- delete player;
- delete pistol;
- delete dr_evil;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement