`#include
// 定义状态枚举
enum State {
STATE_A = 1 << 0, // 0001
STATE_B = 1 << 1, // 0010
STATE_C = 1 << 2 // 0100
};
class MyClass {
private:
int currentState;
public:
MyClass() : currentState(0) {}
// 设置状态
void setState(State state) {
currentState |= state;
}
// 取消状态
void unsetState(State state) {
currentState &= ~state;
}
// 检查状态是否已设置
bool isStateSet(State state) const {
return (currentState & state) == state;
}
// 检查对象是否满足所有的状态
bool isAllStatesSet() const {
return isStateSet(STATE_A) && isStateSet(STATE_B) && isStateSet(STATE_C);
}
};
int main() {
MyClass obj;
// 设置状态
obj.setState(STATE_A);
obj.setState(STATE_B);
obj.setState(STATE_C);
// 检查对象是否满足所有的状态
if (obj.isAllStatesSet()) {
std::cout << "对象满足所有的状态" << std::endl;
} else {
std::cout << "对象不满足所有的状态" << std::endl;
}
return 0;
}
`