Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Race
- {
- public:
- virtual void eat() = 0;
- //...
- };
- class Sun_Insensitive
- {
- //...
- };
- class Strong
- {
- //...
- };
- class Repulsive
- {
- //...
- };
- class Intelligent
- {
- //...
- };
- template <typename T>
- class Human : public T, public Race
- {
- public:
- void eat() override;
- //...
- };
- template <typename T>
- class Orc : public T, public Race
- {
- public:
- void eat() override;
- //...
- };
- template <typename T>
- class Uruk_Hai : public T, public Race
- {
- public:
- //...
- };
- Uruk_Hai* uruk = new Uruk_Hai;
- uruk->eat();
- int eat_dinner(Race* dinner_guest)
- {
- Uruk_Hai<Repulsive> r = dynamic_cast<Uruk_Hai>(dinner_guest);
- if(r == nullptr)
- {
- Orc<Repulsive> r = dynamic_cast<Orc>(dinner_guest);
- if(r == nullptr)
- {
- Human<Repulsive> r = dynamic_cast<Human>(dinner_guest);
- }
- }
- if (r.is_repulsive())
- {
- return 1;
- }
- return -1;
- }
- /*
- https://i.imgur.com/kkOi4aS.jpg
- */
Advertisement
Add Comment
Please, Sign In to add comment