读书人

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

发布时间: 2013-07-11 15:38:46 作者: rapoo

请问下字符串变量怎么能转换为类名!!!!!!!
一般的创建一个类 是这样的语句:
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的内容。

读书人网 >C++

热点推荐