В C ++, есть ли способ / процедура, чтобы узнать, был ли определенный класс унаследован другим классом?
Возможно ли это в C ++
Например, допустим, у вас есть следующие два класса:
class A {};
class B : public A {};
Если вы спросите, есть ли способ узнать, A
были унаследованы тогда нет такого пути нет.
Если вы спросите, есть ли способ узнать, B
наследуется от другого класса (независимо от того, какой это класс), то нет, нет.
Самое близкое, что вы можете получить, вероятно, std::is_polymorphic
, который сообщает (время компиляции), если у класса есть виртуальные функции, которые Можно наследоваться, или если у класса есть виртуальные функции, которые он унаследовал. Не существует функциональности, времени компиляции или времени выполнения, чтобы определить, унаследован ли класс или каковы базовые классы какого-либо класса.
Других решений пока нет …