1

今天我发现了一些我以前没见过的语法。

enum MyEnum{    FOO = 0,    ABA,    DADA, }
....

MyEnum test;
std::uint8_t some_number(3);

test = MyEnum(some_number);

这里到底发生了什么?枚举将被视为一个类?或者这只是一个演员?

4

2 回答 2

3
test = MyEnum(some_number);

这里some_number是显式转换为枚举类型。除非值在枚举范围内,否则这种转换的结果是不确定的。

于 2013-06-07T10:08:32.390 回答
0

MyEnum 被声明为具有三个值:

FOO: 0
ABA: 1
DADA: 2

std::uint8_t some_number被初始化为值3。然后将该值转换为一个MyEnum值。因为不存在从值3MyEnum值的映射,所以您可能会Enumtest

于 2013-06-07T10:10:02.910 回答