示例: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