Я не очень привык к программированию с флагами, но я думаю, что я нашел ситуацию, в которой они были бы полезны:
У меня есть несколько объектов, которые регистрируются как слушатели определенных событий. Какие события они регистрируют, зависит от переменной, которая отправляется им при их создании. Я думаю, что хороший способ сделать это - отправить побитовые ИЛИ связанные переменные, такие как: TAKES_DAMAGE | GRABBABLE | LIQUID и т.д. Затем в конструкторе объект может проверить, какие флаги установлены, и зарегистрировать его как слушателя для тех, которые есть.
Но здесь я запутался. Предпочтительно, флаги будут в перечислении. Но это тоже проблема. Если у нас есть эти флаги:
enum
{
TAKES_DAMAGE,/* (0) */
GRABBABLE, /* (1) */
LIQUID, /* (2) */
SOME_OTHER /* (3) */
};
Затем отправка флага SOME_OTHER (3) будет таким же, как отправка GRABBABLE | ЖИДКОСТЬ, не так ли?
Как именно вы имеете дело с этим материалом?