Возможный дубликат:
Есть ли способ создать экземпляры объектов из строки, содержащей имя их класса?
Я работаю над проблемой в некотором коде C ++, который имеет базовый класс InputFile
и ряд производных классов: TxtInputFile
, ASCInputFile
и т. Д., Где каждый производный класс представляет собой определенный тип ввода.
Что я хотел бы сделать, так это взять переменную из командной строки, а затем сгенерировать правильный объект производного класса для работы с указанным типом файла (например, пользователь указал TXT
в командной строке, поэтому я генерирую TXTInputFile
и вернитесь под меткой InputFile
для использования в остальной части программы).
Я мог бы сделать это с помощью строки операторов IF
/ 'ELSE`, сравнивая вводимые пользователем данные с набором предопределенных кодов файлов, но я хотел бы иметь возможность добавить поддержку новых типов файлов в будущем без редактирования строки операторов if и добавления новых кодов файлов и т. д.
Есть ли способ получить доступ к некоторой сгенерированной компилятором таблице всех производных классов для базового класса во время выполнения?
Или, возможно, какой-то полиморфный конструктор, который динамически привязан к тому, чему равен переданный параметр?
(например, _8 _... TXTInputFile(string temp = "TXT")
, _10 _... Я понимаю, что это формат значений по умолчанию для параметров, просто пытаюсь предположить, куда я шел с этим ходом мыслей.)
Заранее спасибо.