io non sono molto utilizzati per la programmazione con le bandiere, ma penso di aver appena trovato una situazione in cui sarebbero utili:Bandiere, enum (C)
Ho un paio di oggetti che si registrano come ascoltatori di determinati eventi. Gli eventi per cui si registrano dipendono da una variabile che viene inviata loro quando sono costruiti. Penso che un buon modo per farlo sarebbe quello di inviare variabili bitwise o collegate, come ad esempio: TAKES_DAMAGE | GRABBABLE | LIQUID, ecc. Quindi, nel costruttore, l'oggetto può controllare quali flag sono impostati e registrarsi come listener per quelli che sono.
Ma questo è il posto dove mi confondo. Preferibilmente, le bandiere sarebbero in un enum. Ma anche questo è un problema. Se abbiamo ottenuto questi flag:
enum
{
TAKES_DAMAGE,/* (0) */
GRABBABLE, /* (1) */
LIQUID, /* (2) */
SOME_OTHER /* (3) */
};
inviando poi il SOME_OTHER bandiera (3) sarà lo stesso come l'invio di afferrabili | LIQUIDO, non è così?
Come si gestisce esattamente questa roba?
@jldupont - Confido che intendessi "operatore shiFt"? 8v) –
@jldupont Penso che manchi una lettera ... – Greg
Non credo di aver ricevuto 5 risposte contemporaneamente. o.o Grazie per l'eccellente spiegazione e soluzione. – quano