我不是很習慣用旗幟編程,但我想我剛剛發現的情況下,他們會是有用的:標誌,枚舉(C)
我有一對夫婦的對象是自己註冊作爲某些事件的聽衆。他們註冊哪些事件取決於構建時發送給他們的變量。我認爲一個很好的方法是發送按位或連接變量,如:TAKES_DAMAGE | GRABBABLE | LIQUID等。然後,在構造函數中,對象可以檢查設置了哪些標誌並將它自己註冊爲偵聽器。
但這是我困惑的地方。優選地,這些標誌將在枚舉中。但這也是一個問題。如果我們有這些標誌:
enum
{
TAKES_DAMAGE,/* (0) */
GRABBABLE, /* (1) */
LIQUID, /* (2) */
SOME_OTHER /* (3) */
};
然後發送標誌SOME_OTHER(3)將是相同的發送GRABBABLE | LIQUID,不是嗎?
你究竟如何處理這個東西?
@jldupont - 我相信你的意思是「shiFt運營商」? 8v) – 2009-10-27 14:48:12
@jldupont我認爲你錯過了一封信... – Greg 2009-10-27 14:48:28
不要以爲我同時收到5個回覆。 o.o 感謝您的出色解釋和解決方案。 – quano 2009-10-27 14:48:57