У меня есть это перечисление:
enum ButtonState {
BUTTON_NORMAL = 0,
BUTTON_PRESSED = 1,
BUTTON_CLICKED = 2
};
const u8 NUM_BUTTON_STATES = 3;
В моем классе Button у меня есть переменные-члены ButtonState state;
и ButtonColors colors[NUM_BUTTON_STATES];
. При рисовании кнопки я использую colors[state]
для получения цветов для любого состояния, в котором находится кнопка.
Мои вопросы:
- Это хороший стиль программирования? Есть ли лучший способ сделать это? (Обычно я использую только перечисления с операторами switch... использование перечисления как индекса массива не кажется правильным.)
- Нужно ли указывать значения перечисления? Кажется, он начинается с 0 по умолчанию и увеличивается на 1, но гарантировано ли это работать во всех компиляторах?