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

这个enum没有任何意义吧?解决方案

2012-03-11 
这个enum没有任何意义吧?现有程序如下:----------------------classCIRInfoStore{public://Constantsenum{

这个enum没有任何意义吧?
现有程序如下:


----------------------
class   CIRInfoStore    
{
public:
//   Constants
enum  
{
NULL_STATUS_SET=0x00000000,   OCR_OPEN_SET=0x00000001,};

public:
CIRInfoStore();
~CIRInfoStore();
...........
----------------------------------------------------


这个enum我没有办法在我的程序里用到吧?   除非我这样写:
----------------------------------
enum  
{
NULL_STATUS_SET=0x00000000,   OCR_OPEN_SET=0x00000001,}a   ,   b;
----------------------------------


或写成:
------------------------------------
enum   A
{
NULL_STATUS_SET=0x00000000,   OCR_OPEN_SET=0x00000001,};
------------------------------------

我才可能在将来的程序中,用到这个enum吧?

我分析的对吗?



[解决办法]
但你可以直接用那个常量。比如赋给一个整数:
int set_type = NULL_STATUS_SET;

出现这种东西最主要的原因是以前的某些编译器(比如VC6.0),不技持在类中直接定义常量。
要是换成VC2003或更高的话,也就不用这么弊脚了,直接:

class CIRInfoStore
{
public:
static const int NULL_STATUS_SET=0x00000000;static const int OCR_OPEN_SET=0x00000001;
……

OK。
[解决办法]
楼上正解
[解决办法]
谁说没办法用到的?
例:
class Demo
{
public:
enum
{
DEMO_ENUM0 = 0x0,
DEMO_ENUM1 = 0x1,
};
};

int main(int argc, char **argv)
{
UINT u = DEMO::DEMO_ENUM0;
}
[解决办法]
enum 的最常用技巧,
就是用 enum 定义常量,
方式就是楼主你所列的那样 ~
[解决办法]
也可以在standard c++中用
[解决办法]
标准是接受的。
其实从C语言,enum成员就一直都是可以直接引用,而不用类型名来修饰的呀。
[解决办法]
就是定义const int类型的变量了。
[解决办法]
楼主的想法不对。
enum
{
NULL_STATUS_SET=0x00000000, OCR_OPEN_SET=0x00000001,};
这种没有名字的enum定义,只会对定义此enum类型的变量产生影响(只能在定义类型时一同定义变量),但是enum中的“枚举常量”(即NULL_STATUS_SET和OCR_OPEN_SET)仍然是直接可用的,即enum类型定义并没有引入新的“局部域”,因此NULL_STATUS_SET和OCR_OPEN_SET就好像是在外层域定义的整型常量一样,可以被程序取用。
[解决办法]
class CIRInfoStore
{
public:
static const int NULL_STATUS_SET=0x00000000;static const int OCR_OPEN_SET=0x00000001;
……
------
这个没注意过, 学习..

热点排行