C++中的枚举类型

C++中的枚举类型,c++,enums,C++,Enums,这项工作: enum TPriority { EPriorityIdle = -100, EPriorityLow = -20, EPriorityStandard = 0, EPriorityUserInput = 10, EPriorityHigh = 20 }; TPriority priority = EPriorityIdle; 但这不起作用: TPriority priority = -100; 有什么原因吗?它也可以,但您需要显式类

这项工作:

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

TPriority priority = EPriorityIdle; 
但这不起作用:

TPriority priority = -100;

有什么原因吗?

它也可以,但您需要显式类型

TPriority priority = (TPriority)-100;

它也可以工作,但您需要显式类型

TPriority priority = (TPriority)-100;

不能将int赋值给枚举,即使该值与枚举的某个值匹配

但是,铸造将起作用:

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

不能将int赋值给枚举,即使该值与枚举的某个值匹配

但是,铸造将起作用:

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

没有从枚举类型的值到枚举类型本身的类型转换。只有另一种方法。

没有从枚举类型的值到枚举类型本身的类型转换。只有另一种方法。

简而言之:它违背了拥有枚举的目的。

简而言之:它违背了拥有枚举的目的