以下是否有效:

enum TileBmp {Mask, Grass, Sand, Snow, Swamp, Paved, Rock, Savannah, Lava}

ID2D1Bitmap* pBmpTile[TileBmp];

这是否会创建一个大小为 9 的数组,其中可以使用其编号或名称访问任何元素?例如,pBmpTile[3] 和 pBmpTile[Snow] 是否都指向同一个 ID2D1Bitmap*?

我现在无法尝试,直到某些时候才会有能力。否则我会自己尝试。

如果这不起作用,是否有更清洁的替代品
ID2D1Bitmap* pBmpTile[9]

ID2D1Bitmap* pBmpMask, pBmpGrass, pBmpSand, pBmpSnow, pBmpSwamp, pBmpPaved, pBmpRock, pBmpSavannah, pBmpLava;

?

最佳答案

TileBmp 是一种类型,您的数组声明需要一个数字,而不是一个类型。

这将起作用,因为单个 enum 可转换为整数。

enum TileBmp {Mask, Grass, Sand, Snow, Swamp, Paved, Rock, Savannah, Lava, TILEBMP_COUNT};

ID2D1Bitmap* pBmpTile[TILEBMP_COUNT];



在这个例子中,是的。

除非另有说明,enum 中的第一个值可转换为 0,并且每隔一个枚举 1 大于它之前的 enum

关于c++ - 是否可以使用枚举访问数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15736200/

10-12 00:27