|
|
1
53
这种编程风格好吗? 我想是的。我经常做同样的事情。 有更好的方法吗?
缺点是 按钮状态编号 现在是有效的 按钮::状态 价值。如果你把这些值当作 整数 。但如果你真的期待一个 按钮::状态 . 将枚举用作数组索引感觉不对。 没事的。只是 文件 这样下一个人就知道发生了什么!(这就是评论的目的。) 我必须指定枚举的值吗? 没有“=”赋值,枚举 应该是 从零开始,向上递增。 如果枚举条目分配了“=”值,则后续的非“=”枚举条目将从那里继续计数。 来源: 带注释的C++参考手册 ,第113页 也就是说,我喜欢指定初始值,只是为了让代码更清晰。 |
|
2
26
是的,它会工作得很好。也就是说,不管怎样,你 真正地 应该在枚举中添加另一个条目,定义项目数量的值:
然后,您可以定义数组,如下所示
否则,保持状态量与数组大小同步会很混乱。如果不进行初始化,枚举将始终从零开始,然后如果不进行其他初始化,每个额外的条目都将被分配一个比前一个高一个的值。当然,如果你愿意,如果你明确地加一个零,也不会有什么坏处。如果你不介意额外的代码,我会用一个函数来包装对原始数组的访问,比如
或同等产品
|
|
|
3
15
使用枚举是可以的。但您不必为每个项目指定值。指定第一个值就足够了。我不会假设枚举从0开始,因为我使用的编译器使用1作为起始值(不适用于PC,但一些微控制器的编译器有一些奇怪的行为)。 你也可以去掉const:
|
|
|
4
5
风格方面,这很好。 基于Pascal的语言,如Delphi,允许将数组边界指定为枚举类型,因此您只能将该特定类型的项用作索引。 |
|
|
5
3
问题1:我认为这是一种很好的编程风格。我一直在用它。 问题2:据我所知,它保证以这种方式工作,所以你不必指定值。 我也会将NUM_BUTTON_STATES放入枚举中。 |
|
|
6
1
使用枚举对数组进行索引是完全正常的。 您不必指定每个枚举值,它们将自动递增1。让编译器选择值可以降低键入错误和创建错误的可能性,但它会剥夺您看到值的机会,而这些值在调试中可能很有用。 |
|
|
7
1
这很好,但我想对数组进行一些边界检查,就像有人添加了另一个ButtonState一样,你会遇到问题。
此外,colors数组的元素是不可变的,所以也许可以考虑使用不同的数组集合,这样你就可以强制执行这种不可变性。也许a
|
|
|
8
0
其中一种方法是在类中创建一个内部向量并重写运算符[]:( here is the link to online code )
|
|
|
H.v.M. · 为最后一个枚举值指定不同的变量值 4 年前 |
|
|
JimmyDiJim · 在声明后定义枚举变量 8 年前 |
|
|
Eli K · 语法错误,插入“{”以完成枚举体(在类的末尾) 8 年前 |
|
|
Vivek Shukla · 在中间添加枚举 8 年前 |
|
|
DannyD · 如何访问typescript中的枚举名称 8 年前 |