以下是否有效:
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/