在C++類中處理狀態的最有效和最現代的方式是什麼? 目前我正在使用多個布爾,但越多我說我更難以維護。例如,如果我有一個名爲VideoPlayer的類,並且它有四個定義不同狀態的布爾值。如果我們爲每個布爾添加set方法,我們需要取消設置所有其他布爾。在C++類中處理多個狀態
class VideoPlayer
{
public:
void play()
{
play_ = true;
pause_ = false;
stop_ = false;
reset_ = false;
}
void stop()
{
stop_ = true;
play_ = false;
pause_ = false;
reset_ = false;
}
private:
bool play_;
bool pause_;
bool stop_;
bool reset_;
};
也許一個小的有限狀態機將是適當的。 –
看起來像枚舉可能在這裏做的工作。 – sjwarner
如果您使用的是C++ 11,請改用'enum class'。 – Dai