首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请教下字符串变量如何能转换为类名!

2013-07-11 
请问下字符串变量怎么能转换为类名!!!!!!! 一般的创建一个类 是这样的语句:ClassXXX*tempnew ClassXXX()

请问下字符串变量怎么能转换为类名!!!!!!!
 一般的创建一个类 是这样的语句:
    ClassXXX  *temp=new ClassXXX();

但现在我要实现一个这样的一个功能:
 把 ClassXXX 作为一个字符串传递给一个函数,由这个函数根据传过来的字符串来创建 一个类。
   
 比如:
  int  createClass(char *p_cls)
  {

       ......??????????这里我应该怎么做,谢谢!!!!
  }   


ps: 我记得可以把一个宏转换为字符串, 但这个就不清楚了,请教一下,谢谢!




   
[解决办法]
可以用宏来实现:


#define createClass(name) \
  Class##name * temp = new Class#name();


引用:
 一般的创建一个类 是这样的语句:
    ClassXXX  *temp=new ClassXXX();

但现在我要实现一个这样的一个功能:
 把 ClassXXX 作为一个字符串传递给一个函数,由这个函数根据传过来的字符串来创建 一个类。
   
 比如:
  int  createClass(char *p_cls)
  {

       ......??????????这里我应该怎么做,谢谢!!!!
  }   


ps: 我记得可以把一个宏转换为字符串, 但这个就不清楚了,请教一下,谢谢!




   

[解决办法]
使用映射表是最佳方案,loki库里有现成的实现,楼主可以看一下《C++设计新思维》中关于Factory的内容。

热点排行