Как получить имя родительского класса из дочернего

#c

#c

Вопрос:

у меня есть что-то похожее на configData:

 class all {
public:
    class animals {
    public:
        class animalPatern {
        public:
            int hp = 80;
            std::string name = "no name";
        };
        class cow : public animalPatern {
        public:
            std::string name = "big cow";
        };
        class bird : public animalPatern {
        public:
            std::string name = "small bird";

        };
    };
};
 

как я могу получить имя родительского класса animalPatern от дочернего класса bird, для шаблона я могу использовать std::is_base_of, не могу найти какую-либо информацию, как это сделать для класса…
а также возможность получить имя всех дочерних классов, как у животных: animalPatern, cow ,bird

Комментарии:

1. Неясно, что вы хотите сделать. Чтобы использовать animalPatern , просто запишите этот идентификатор, нет необходимости «получать» его откуда угодно. OTOH родитель не может получить никакой информации о дочерних элементах.

2. извините, плохой перевод, есть класс имени «cow», получающий его родительский класс имени «animalPatern». У меня есть несколько методов для получения данных в конкретном классе, хочу попробовать метод записи, чтобы получить имя родительского класса и получить все дочерние классы

3. @hekut146 в виде строки во время выполнения или в качестве идентификатора во время компиляции. Также некоторые вещи, о которых вы должны знать: 1. bird и cow объекты содержат 2 строки по 2. Вы можете наследовать от нескольких классов, что может усложнить ситуацию, если это произошло в вашем случае.

4. Выглядит как all и animals должно быть namespace вместо пустого class .

5. Компьютеру не нужны такие глупые вещи, как понятные для человека идентификаторы. Обычно они давно исчезли, отбрасываются компилятором за ненадобностью во время выполнения.