摘自 数字枚举
数字枚举可以被混入到计算过的和常量成员(如下所示)。 简短地说,不带初始化器的枚举或者被放在第一的位置,或者被放在使用了数字常量或其它常量初始化了的枚举后面。 换句话说,下面的情况是不被允许的:
enum E {
A = getSomeValue(),
B, // error! 'A' is not constant-initialized, so 'B' needs an initializer
}
太绕了,有更简单好理解的解释吗?
摘自 数字枚举
数字枚举可以被混入到计算过的和常量成员(如下所示)。 简短地说,不带初始化器的枚举或者被放在第一的位置,或者被放在使用了数字常量或其它常量初始化了的枚举后面。 换句话说,下面的情况是不被允许的:
enum E {
A = getSomeValue(),
B, // error! 'A' is not constant-initialized, so 'B' needs an initializer
}
太绕了,有更简单好理解的解释吗?
13 回答13.1k 阅读
7 回答2.3k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.4k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
6 回答1.2k 阅读
枚举的key不指定值,那就是从0开始自增的。
如果中间某个key指定了数字,比如100,那么下一个key就是101(没有指定value的话)。
如果中间某个key指定了
非数字
,那么下一个key就没办法自增了,需要用户手动指定value。