【发布时间】:2014-01-27 11:06:44
【问题描述】:
我有一种材料,可以是热的或冷的、白色或黑色的。状态可以是热和白、热和黑、冷和白、冷和黑。我有以下课程
class myMaterial
{
public:
enum state
{
DEFAULT = 0,
HOT = 1 << 0,
WHITE = 1 << 1
};
void SetState(int);
private:
int m_state;
};
void myMaterial::SetState(int state)
{
m_state = state;
}
现在在 main() 中,我调用 SetState 方法来设置这些状态
myMaterial material;
material.SetState(myMaterial::HOT);
以下按位运算是否正确,设置所有类型的状态
HOT and WHITE => myMaterial::HOT | myMaterial::WHITE
HOT and BLACK => myMaterial::HOT | ~myMaterial::WHITE
COLD and WHITE => ~myMaterial::HOT | myMaterial::WHITE
COLD and BLACK => ~myMaterial::HOT | ~myMaterial::WHITE
【问题讨论】:
-
你到底想完成什么?状态类型列表似乎没有意义:你不能有 just
HOT- 颜色位必须有 some 值,无论是 0 还是1. -
我的错。我将编辑问题
标签: c++ class set bit-manipulation member