请问如何将enum中的成员类型保存到string中

wang22cheng22 2010-07-02 03:24:44
其实我用的是QT,不过没有找到满意答案。
问题如下:
比如
enum devices{_TRANSFORMER,_LINE,_BREAKER};

如何将devices的成员,也就是将_TRANSFORMER,_LINE,_BREAKER获得,转换成string类型。(在QT中我需要把它们放到一个QStringList中,然后初始化一个QCombobox)

请问,有什么办法。谢谢。
...全文
63 点赞 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
stonewater 2010-07-02
C++也不是很熟,有没有可以直接操作类本身的函数?比如 :
class A{...};

A.xxx();

这种?
除非是static函数,才能直接调用
回复
zxdlms 2010-07-02
这个没办法,应为enum本质上是一个整数,1楼的办法就是通用的办法了。
回复
wang22cheng22 2010-07-02
C++也不是很熟,有没有可以直接操作类本身的函数?比如 :
class A{...};

A.xxx();

这种?
回复
刚刚凉 2010-07-02
没有什么好办法,这样行不, 你定义一个全局string 数组, string str[] ={"_TRANSFORMER","_LINE","_BREAKER"...} 然后在用的时候 比如当是_TRANSFORMER时 你就取str[_TRANSFORMER]
回复
wang22cheng22 2010-07-02
其实我想问的就是,如何enum的成员数目和名称未知的情况下,如何获得他的成员类型。有没有什么函数可以调用一下,就返回成员类型的?
回复
wang22cheng22 2010-07-02
还是相当于手动输入。。,我用的是别人的enum,不是我自己定义的,枚举很多,我总不能每个类型都手动变成字符串
回复
雪影 2010-07-02
以此类推
回复
雪影 2010-07-02
up
ls的是一种办法
或者声明一个字符串数字也行
enum devices{_TRANSFORMER,_LINE,_BREAKER};
char* sz[] ={_T("_TRANSFORMER"),_T("_LINE,_BREAKER")};
sz[0]指向的是第一个字符串
回复
wang22cheng22 2010-07-02
不行啊,都相当于手动输入了,我的枚举类型很多,成员类型也很多,不能这样搞阿。
回复
刚刚凉 2010-07-02
switch()
{
case _TRANSFORMER:
string .... = "_TRANSFORMER";
case _LINE:
....

}
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告