c ++中的枚举类型

时间:2010-05-15 10:53:31

标签: c++ enums

这有效:

enum TPriority 
{
    EPriorityIdle = -100,
    EPriorityLow = -20,
    EPriorityStandard = 0,
    EPriorityUserInput = 10,
    EPriorityHigh = 20
};

TPriority priority = EPriorityIdle; 

但这不起作用:

TPriority priority = -100;

任何原因?

4 个答案:

答案 0 :(得分:10)

它也有效,但你需要显式类型

TPriority priority = (TPriority)-100;

答案 1 :(得分:4)

很快就说:它打败了枚举的目的

答案 2 :(得分:2)

即使值与枚举值之一匹配,也无法为枚举赋值。

但是,施法会起作用:

TPriority priority = static_cast<TPriority>(-100);

答案 3 :(得分:0)

没有从枚举类型的值到枚举类型本身的类型转换。只是相反。