小编use*_*054的帖子

用C++编写状态机

我正在尝试基于口香糖球机对状态机进行编码.我有一个基本状态的接口类,而我有使用此接口的特定状态.我有四个状态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)

c++ codeblocks

1
推荐指数
1
解决办法
182
查看次数

标签 统计

c++ ×1

codeblocks ×1