我正在尝试基于口香糖球机对状态机进行编码.我有一个基本状态的接口类,而我有使用此接口的特定状态.我有四个状态no_quarter,has_quarter,sold,和sold_out状态.我还有一个gumball机器类来处理这些状态,根据我的机器所处的状态,它将进入该类并执行所需的操作.这是我的代码有问题,我也会发布我的功能.
Gumball_Machine.h
class Gumball_Machine
{
private:
int gumball_count;
State *current_state;
No_Quarter_State *nqs;
Has_Quarter_State *hqs;
Sold_State *ss;
Sold_Out_State *sos;
public:
Gumball_Machine(int inventory)
{
gumball_count = inventory;
nqs = new No_Quarter_State(this);
hqs = new Has_Quarter_State(this);
ss = new Sold_State(this);
sos = new Sold_Out_State(this);
if (gumball_count == 0)
set_state(sos);
else
set_state(nqs);
}
void insert_quarter()
{
current_state->insert_quarter();
}
void eject_quarter()
{
current_state->eject_quarter();
}
void turn_crank()
{
current_state->turn_crank();
}
void dispense()
{
current_state->dispense();
}
void set_state(State *new_state) …Run Code Online (Sandbox Code Playgroud)