У меня есть материал, который может быть либо ГОРЯЧИМ, либо ХОЛОДНЫМ, БЕЛЫЙ или ЧЕРНЫЙ. Государства могут быть ГОРЯЧЕГО и БЕЛАЯ, ГОРЯЧАЯ и ЧЕРНАЯ, ХОЛОДНАЯ и БЕЛАЯ, ХОЛОДНАЯ и ЧЕРНАЯ. У меня есть следующий классБит-маски: задайте различные состояния объекта с помощью метода установки
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;
}
В настоящее время в основном(), я вызываю метод 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
Что вы хотите достичь именно? Список типов состояний, похоже, не имеет смысла: у вас не может быть * просто * 'HOT' - бит цвета должен иметь * некоторое * значение, будь то 0 или 1. – harold
Мой плохой. Я отредактировал вопрос – ontherocks