【发布时间】:2015-10-19 14:22:26
【问题描述】:
假设我有 3 个类,ClassA,ClassB,ClassC,它们都是从 classD 继承的,并且它们都具有仅获得一个 int 的构造函数,我想构建一个函数,在字符串中获取类名和一些 int ,并从类名返回新对象, 是否可以在 C++ 中不检查带有条件的类名?
我不想做这样的事情
if(className == "classA")
return new ClassA(Num)
else if(className == "classB")
return new Classb(Num) ....
【问题讨论】:
-
@cad: 不,走错路了……尽管可以说可以从中构建一个解决方案以及某种自动类型注册系统……如果您不介意@ 987654322@ 完全未指定。
-
标准 C++ 没有为此提供任何工具。您必须使用平台相关库来搜索符号表并在其中解开名称。
-
你需要使用工厂模式。
标签: c++