可能重复:
有没有办法从保存类名的字符串中实例化对象?
我正在处理一些 C++ 代码中的一个问题,该代码具有一个基类InputFile
和许多派生类:TxtInputFile
、ASCInputFile
等,其中每个派生类都是特定的输入类型。
我想做的是从命令行中取出一个变量,然后生成正确的派生类对象来处理指示的文件类型(例如,用户TXT
在命令行中指示,所以,我生成一个TXTInputFile
对象并在InputFile
标签下返回以用于程序的其余部分)。
我可以用IF
/ 'ELSE' 语句的字符串来做到这一点,将用户输入与一堆预定的文件代码进行比较,但我希望将来能够添加对新文件类型的支持而无需编辑字符串if 语句和添加新的文件代码等。
有什么方法可以在运行时访问某个编译器生成的所有派生类表到基类?
或者可能是某种基于传递参数等于动态绑定的多态构造函数?
(例如InputFile(string)
...... TXTInputFile(string temp = "TXT")
,ASCInputFile(string temp = ASC")
......我意识到这是参数默认值的格式,只是想建议我用这种思路去哪里。)
提前致谢。