Ответы пользователя по тегу ООП
  • Система плагинов?

    @megalol
    Если C++-way (и C++-only), то через pimpl. Так делают в Qt, например.
    То есть бинарно-совместимый класс, лежащий в хедере, устроенный так:
    class Foo{ private: unique_ptr<FooImp> impl; public: void DoSomethig(); }; //И .cpp файл, в котором лежит struct FooImpl{ void ReallyDoSomethig(){doSomething;} }; void Foo::DoSomething(){ impl->ReallyDoSomethig(); } Foo::Foo() : impl(make_unique<FooImpl>()){ }
    Чуть менее C++-way — интерфейс в .h файл,
    Конкретный вопрос: как получить список сабклассов, от базового класса плагина.

    С++ беден об информации о типах во время выполнения. Или руками (завести функцию getPluginSubclassesList() с вручную возвращаемым списком фабрик, ну или просто завести фабрику), или взять то, что эту информацию добавит. Возможно MOC из Qt умеет это.
    Ответ написан
    3 комментария