c++如何根据派生类名称动态创建实例

gldcpp 2016-12-20 05:18:34
例如有基类A,其派生类为B和C,如何根据“B”,"C"这两个名称来创建其实例呢?A* m = new B()的方式创建,但似乎总还是需要在之前通过switch或ifelse来选择new 的对象,这里如何解决类似问题呢?
...全文
223 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
勤奋的小游侠 2016-12-21
  • 打赏
  • 举报
回复
creaetClassByName(xxxx) 这个就是工厂模式,工厂模式里面连if else都不想写,就真的有点太懒了吧。
ID870177103 2016-12-21
  • 打赏
  • 举报
回复
你觉得java通过类名找到类不需要查找吗?封好的方法只是帮你做了这些事而已
yshuise 2016-12-20
  • 打赏
  • 举报
回复
这就叫面向对象。
幻夢之葉 2016-12-20
  • 打赏
  • 举报
回复
写个函数 A* CreateInstance(int type) //或者参数为字符串 { if(type == 0) return new B(); else if(type == 1) return new C(); return new A(); } 另一种方法可以用宏 #define CREATE_A_INSTANCE(class) new class();

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧