C++有限状态机
我被布置了一个家庭作业,我似乎无法集中注意力。我们的老师要我们编写一个有限状态机。这是密码C++有限状态机,c++,state-machine,C++,State Machine,我被布置了一个家庭作业,我似乎无法集中注意力。我们的老师要我们编写一个有限状态机。这是密码 #ifndefine #define FINITE_STATE_MACHINE_H #include <iosfwd> class FiniteStateMachine { Private: friend std::ostream &operator<< (std::ostream &, FiniteStateMachi
#ifndefine
#define FINITE_STATE_MACHINE_H
#include <iosfwd>
class FiniteStateMachine
{
Private:
friend std::ostream &operator<< (std::ostream &, FiniteStateMachine const &);
public:
FiniteStateMachine(){}
virtual FiniteStateMachine *changeState() const = 0;
virtual char const *toString() const = 0;
virtual ~FiniteStateMachine(){}
};
class ON : public FiniteStateMachine
{
private:
public:
ON(){}
FiniteStateMachine *changeState() const;
char const *toString() const;
};
class OFF : public FiniteStateMachine
{
private:
public:
OFF(){ }
FiniteStateMachine *changeState() const;
char const *toString() const;
};
#endif
编译器返回了以下错误
无法将“FiniteStateMachine”转换为“FiniteStateMachine*”
一位同学建议将其放入构造函数中,而不是简单地调用changeState
OFF::OFF()
{
FiniteStateMachine *OFF::changeState() const
{
FiniteStateMachine *on = new ON;
return *on;
}
}
编译器返回错误
令牌前声明中的限定id
表示它处于changeState和的之间
在更多的键盘敲击之后,我似乎需要写作了
FiniteStateMachine *OFF::changeState() const
{
return new OFF();
}
尝试查找“状态模式”。乙二醇
此设计模式旨在解决您的要求。我在这里看不到任何代码,只有您的声明。你自己试过什么吗?我们不是做我的作业平台…向我们展示您尝试了什么,以及您收到了什么错误消息。它似乎不起作用,对什么是错误的描述没有帮助。我已经为昨天尝试的changeState函数添加了代码,以及今天早上一位同学为OFF构造函数建议的代码。你能提供示例代码吗?这可能有什么用?请查看链接页面的“代码示例”下的。有一个例子非常符合他的要求。
FiniteStateMachine *OFF::changeState() const
{
return new OFF();
}