我不是很习惯用旗帜编程,但我想我刚刚发现的情况下,他们会是有用的:标志,枚举(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