У меня есть перечисление:
enum Items {
PAC = 'C', GHOST = '@', FRUIT = 'o', POINTS = '.', WALL = 'w', EMPTY = ' ', UNDEFINED = '+'
} fieldItems;
И я хочу изменить w на 178 таблицы ascii. Я знаю, как я его назначаю: char w = 178; Но как я могу указать w перечисления, что это символ?
Почему не просто:
WALL = 178
Если вы хотите управлять базовым типом enum
, вы должны использовать
enum Items : char { ... };
в любом случае. Обратите внимание, что только Items
перечисления типа имеют один базовый тип, а не каждое значение. Вы не можете сообщить компилятору, что WALL
имеет определенный тип.
WALL = 178
, поскольку это не будет иметь никакого значения, если вы будете использовать другие способы, такие как '\xB2'
или char(178)
- результат будет таким же.
Существует не decimal-escape для символьных литералов, но есть hex escape:
WALL='\xB2'