Существуют ли в C ++ методы самоанализа, подобные тем, которые есть в python?
Например: я хочу получить больше информации о конкретном объекте, не просматривая файл заголовка и не обращаясь к ссылке на cpp.
Я задаю правильный вопрос или двигаюсь в неправильном направлении?
Обновить:
Основываясь на ответах ниже, этот ответ связан с моим вопросом: Как добавить отражение в приложение C ++?
C ++ имеет встроенную систему RTTI, хотя по большей части она бесполезна. В результате вместо этого используется пользовательский самоанализ.
Самоанализ в C ++ реализуется двумя основными методами: на этапе предварительной обработки, когда вы сканируете файлы cpp и создаете базу данных / генерируете код CPP; использовать шаблоны. Я написал несколько статей о технике шаблонов Вот.
Если вас больше интересует только самоанализ, а не его реализация, я предлагаю поискать clReflect, или вы можете попробовать cpfg.
Python и C ++ — радикально разные языки. Обычно,
почти вся информация о типах теряется после того, как вы закончили
компилирование. Все, что вы можете сделать, это спросить, является ли объект
определенный класс (используя typeid
) или, если это экземпляр
определенный класс (используя dynamic_cast
). В теории вы можете
также получить имя типа, используя typeid::name()
, но в
практика, стандарт не налагает ничего полезного для
возвращаемое значение, и некоторые компиляторы (например, g ++) не дают вам
ничего полезного.