c++ 多状态设置

http://blog.csdn.net/wzq9706/article/details/7858711


// 王智泉
enum {
	ST_1 = 0x01 << 1;	// 状态1
	ST_2 = 0x01 << 2;	// 状态2
	ST_3 = 0x01 << 3;	// 状态3
	ST_4 = 0x01 << 4;	// 状态4
	ST_5 = 0x01 << 5;	// 状态5

};

class StateTest
{
public:

	StateTest():_state(0){}

	~StateTest(){}

	// 设置指定状态
	// @param tag 状态
	// @param enable 是否打开
	void setState(int tag, bool enable)
	{
		if (enable)
			_state |= tag;
		else
			_state &= ~tag;
		
	}

	// 指定的状态是否打开
	bool isStateEnable(int tag) const
	{
		return (_state & tag) != 0;
	}

private:

	long long _state;

};


转载于:https://www.cnblogs.com/iapp/archive/2012/08/13/3631787.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值