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

enum不让小弟我这么玩

2012-05-21 
enum不让我这么玩?我想表示若干方向,但是enum不让我用|操作符,说我不合法地把int转换为enum:C/C++ code//

enum不让我这么玩?
我想表示若干方向,但是enum不让我用|操作符,说我不合法地把int转换为enum:

C/C++ code
// 不要问我NORTH | SOUTH这种情况……enum Direction {    OTP_CENTER = 0,    OTP_NORTH = 8,    OTP_SOUTH = 4,    OTP_EAST = 2,    OTP_WEST = 1,    OTP_NORTH_EAST = OTP_NORTH | OTP_EAST,    OTP_NORTH_WEST = OTP_NORTH | OTP_WEST,    OTP_SOUTH_EAST = OTP_SOUTH | OTP_EAST,    OTP_SOUTH_WEST = OTP_SOUTH | OTP_WEST};Direction which = OTP_CENTER;if (some_condition) which |= OTP_NORTH; // error: invalid conversion from ‘int’ to ‘otp::Direction’ [-fpermissive]

应当怎么解决?定义一堆const?


[解决办法]
将which声明成为int类型的变量即可。
枚举常量就是int类型的常量。
你的代码试图改变常量的值,当然不可以。改成变量即可。

热点排行