Lines Matching refs:Kind
15 enum class Kind {
20 static const std::type_info* type_of_kind(Kind kind);
21 static std::string name_of_kind(Kind kind);
23 const Kind kind;
27 Animal(const std::string& _name, Kind _kind)
34 Dog(const std::string& _name, Kind _kind = Kind::Dog) : Animal(_name, _kind) {}
42 : Dog(_name, Kind::Labrador), excitement(_excitement) {}
48 Chihuahua(const std::string& _name) : Dog(_name, Kind::Chihuahua) { sound = "iyiyiyiyiyi"; }
54 Cat(const std::string& _name, Kind _kind = Kind::Cat) : Animal(_name, _kind) {}
60 Panther(const std::string& _name) : Cat(_name, Kind::Panther) {}
72 ret.emplace_back(new Dog("Ginger", Dog::Kind(150)));
75 ret.emplace_back(new Cat("Tiger", Cat::Kind::Cat));
80 const std::type_info* Animal::type_of_kind(Kind kind)
83 case Kind::Unknown: break;
85 case Kind::Dog: break;
86 case Kind::Labrador: return &typeid(Labrador);
87 case Kind::Chihuahua: return &typeid(Chihuahua);
88 case Kind::LastDog: break;
90 case Kind::Cat: break;
91 case Kind::Panther: return &typeid(Panther);
92 case Kind::LastCat: break;
95 if (kind >= Kind::Dog && kind <= Kind::LastDog) return &typeid(Dog);
96 if (kind >= Kind::Cat && kind <= Kind::LastCat) return &typeid(Cat);
100 std::string Animal::name_of_kind(Kind kind)