示例:C++设置“标志”
enum Flags
{
A,
B,
C,
D
};
class MyClass
{
std::string data;
int foo;
// Flags theFlags; (???)
}
- 我怎样才能实现,有可能在一个设置任何数目的“标志” A,B,C和d的在枚举上述MyClass的实例?
我的目标将是这样的:
if (MyClassInst.IsFlagSet(A)) // ...
MyClassInst.SetFlag(A); //...
- 我一定要使用一些数组或向量?如果是,如何?
- 在这种情况下枚举是一个好主意吗?
问题很不清楚,但你可能想看看std :: bitset。 – 2010-04-04 13:45:21
澄清:我希望MyClass具有设置的任何数量的“标志”枚举。我想知道设置它们的最佳方式,并检查它们是否设置。我想我可以通过一个数组实现:bool flags [5];标志[A] =真;标志[B] = FALSE; // ...,但我怀疑这是最好的方法。 – sub 2010-04-04 13:51:05