Lines Matching refs: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;
28 : kind(_kind), name(_name)
35 std::string bark() const { return name_of_kind(kind) + " " + name + " goes " + sound; }
80 const std::type_info* Animal::type_of_kind(Kind kind)
82 switch (kind) {
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)
102 std::string raw_name = type_of_kind(kind)->name();
112 { type = src ? Animal::type_of_kind(src->kind) : nullptr; return src; }