我正在用C++创建一个Tetris克隆,并且有一个枚举GameProperty,其指定如下:

enum GameProperty {
    NUM_OF_TETROMINOES  = 7,
    NUM_OF_TILES        = 4,
    TETROMINO_ROTATIONS = 4
};

就我而言,我在遍历tetromino的图块时使用这些值,例如:
for (int i = 0; i < TETROMINO_TILES; i++) { }

在任何情况下都认为拥有多个具有相同值的枚举数是否被视为不良做法?

最佳答案

这些不应是单个enum中的值。它们应该是单独的常量。要了解原因,请查看类似于i < TETROMINO_TILES的代码。比较将integer与可以具有GameProperty之类的值的TETROMINO_ROTATIONS进行比较。这是没有意义的。

08-24 22:05