Хорошо, мне кажется, что требуется прямое приведение от базового к производному, и я думаю, что это может быть проблемой проектирования, поэтому я объясню, что я делаю, и вы можете сказать мне, что мне нужно изменить.
XML-файл определяет группу объектов, которые похожи. Они имеют один и тот же базовый класс. Основная функция определена в базовом классе DoWork () и является виртуальной.
Моя программа загружает файл XML, создает производные классы и присваивает их вектору базового класса типа.
Все отлично, программа работает. Я могу перебрать вектор и вызвать DoWork ();
Теперь я добавил слой с графическим интерфейсом, чтобы вы могли изменять объекты и записывать обратно XML-файл. Итак, теперь мой GUI-код имеет доступ к вектору указателей базового класса. Но это не очень хорошо, потому что мне нужна информация из производного класса, чтобы я мог выписать файл XML. Является ли единственным решением для этого динамического литья? Мог ли я как-то изменить дизайн? Я знаю, что приведение от основания к выводу неодобрительно.
РЕДАКТИРОВАТЬ: мой графический интерфейс должен отображать информацию, которая также имеет производный класс. Недостаточно просто иметь класс сериализации.