【发布时间】:2009-10-27 14:40:11
【问题描述】:
我不太习惯使用标志进行编程,但我想我只是发现了一种有用的情况:
我有几个对象将自己注册为某些事件的侦听器。它们注册的事件取决于构造它们时发送给它们的变量。我认为这样做的一个好方法是发送按位或连接的变量,例如:TAKES_DAMAGE | GRABBABLE | LIQUID 等。然后,在构造函数中,对象可以检查设置了哪些标志并将其注册为监听器是。
但这就是我感到困惑的地方。优选地,标志将在enum 中。但这也是一个问题。如果我们有这些标志:
enum
{
TAKES_DAMAGE,/* (0) */
GRABBABLE, /* (1) */
LIQUID, /* (2) */
SOME_OTHER /* (3) */
};
那么发送标志SOME_OTHER(3)会和发送GRABBABLE | LIQUID一样,不是吗?
你是如何处理这些东西的?
【问题讨论】: