Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef MONSTER_H
- #define MONSTER_H
- #include<iostream>
- #include<unordered_map>
- #include<stdexcept>
- #include<algorithm>
- #include<numeric>
- #include<iterator>
- #include<set>
- #include<vector>
- using namespace std;
- enum class Type{Water, Fire, Grass, Poison, Electric};
- const vector<string> type_names{"Water", "Fire", "Grass", "Poison", "Electric"};
- class Monster{
- string name;
- int level;
- Type type;
- vector<string> attacks;
- public:
- Monster(string="Squirtle", int=23, Type =Type::Water, vector<string> ={"RainDance", "Liquidation"});
- virtual ~Monster() {}
- string get_name() const;
- int get_level() const;
- Type get_type() const;
- const vector<string>& get_attacks() const;
- friend ostream& operator<<(ostream& o,const Monster& h);
- bool operator<(const Monster& f) const;
- bool operator>(const Monster& f) const;
- bool operator==(const Monster& f) const;
- int operator+(int) const;
- istream& read(istream&);
- ostream& write(ostream&) const;
- void baptize();
- operator int() const {return level;}
- };
- int operator+(int,const Monster&);
- int& operator+=(int&,const Monster&);
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement