У меня есть проект, в котором у меня много связанных классов Info, и я рассматривал возможность размещения иерархии с помощью класса AbstractInfo, а затем кучу производных классов, переопределяя реализации AbstractInfo по мере необходимости. Однако оказывается, что в C++ с использованием класса AbstractInfo для создания одного из производных объектов не так просто. (см. this вопрос, комментарий к последнему ответу)C++ factory and casting issue
Я собирался создать как фабричный класс, который создает объект Info и всегда возвращает объект AbstractInfo. Я знаю, что с C# вы можете делать это с интерфейсами, но на C++ все выглядит немного по-другому.
Вниз кастинг становится сложным делом и кажется склонным к ошибке.
У кого-нибудь есть лучшее предложение для моей проблемы?
Можете ли вы рассказать о том, что вы подразумеваете под «не так просто»? – SingleNegationElimination
В целом это должно быть проблемой только в том случае, если у вас нет полного интерфейса в 'AbstractInfo', т. Е. Вам нужно получить доступ к некоторым методам, которые определены только в подклассе. Но это также может означать, что ваш дизайн субоптимален. С этой небольшой информацией трудно сказать больше. –