您的位置:首页 > 编程语言 > C语言/C++

C++ 中枚举变量出现定义重复

2017-12-11 15:00 405 查看
在使用C++的枚举过程中会出现枚举变量重复的情况,特别是这两个枚举的作用域相同的情况下,如:

enum HOUSE {
big,
small
};

enum COMPUTER {
big,
small
};


编译的时候,就会报错:

错误  1   error C2365: “big”: 重定义;以前的定义是“枚举数” e:\test\qtguitest\win32newmem\maincpp.cpp   20  1   Win32NewMem
错误  2   error C2365: “small”: 重定义;以前的定义是“枚举数”   e:\test\qtguitest\win32newmem\maincpp.cpp   22  1   Win32NewMem


就会出现如上的重复定义的错误。

解决:

C++ 11提供了一种新的枚举类,其枚举的作用域为类:

enum class HOUSE {
big,
small
};

enum class COMPUTER {
big,
small
};


这样编译的时候就不会出错了。

使用要加上枚举名来限定枚举量:

HOUSE h = HOUSE::big;

COMPUTER c = COMPUTER::small;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: