在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