Как хранить информацию о классах

109
24 января 2020, 02:50

Как сохранить в цикле имена классов и классов-родителей так, что бы при необходимости вывести какой то класс по имени так: сперва выводились имена классов родителей(а если и у этих классов есть класс родителей, то сперва их и тд), а потом уже нужный класс. Классов может быть много. У одного класса может быть несколько родителей, а у них свои родители. Информация об именах подается в виде списка. Не могу придумать как их хранить, что бы можно было после удобно пользоваться

for(auto i = iterator; i != list.end(); ++i)
{
    = i->className;
    for (int j = 0; j < i->parentCount; j++)
    {
         = i->parentName;
    }
}
Answer 1

Можно сделать в каждом классе метод для вывода собственного имени, который бы рекурсивно вызывал методы базовых классов:

class Base
{
    public: virtual void
    EchoName(::std::ostream & output)
    {
        output << "::Base";
    }
};
class Derived: public Base
{
    public: void
    EchoName(::std::ostream & output) override
    {
        Base::EchoName(output);
        output << "::Derived";
    }
};
READ ALSO
Вывод -nan(ind) [дубликат]

Вывод -nan(ind) [дубликат]

Почему выводит вместо результата -nan(ind)?

113
Segmentation fault при dynamic_cast

Segmentation fault при dynamic_cast

Имеется freebsd 12, собранный из портов Qt5 и GCC7Любое написанное приложение падает при dynamic_cast

108
Проблема с “FMeshDrawSingleShaderBindings”

Проблема с “FMeshDrawSingleShaderBindings”

VS2017 жалуется на "FMeshDrawSingleShaderBindings не определён"В UE4 всё компилируется без проблем и объект создаётся на сцене

124
Самый короткий способ записи в файл/чтения из него

Самый короткий способ записи в файл/чтения из него

Попался мне такой короткий код, который пытается читать из файла число, и если не может, то пишет туда то, что было в переменной (предполагается,...

122