C++:指针问题

C++: Issue with a pointer

本文关键字:问题 指针 C++      更新时间:2023-10-16

我正在尝试创建一个poptart自动售货机程序,但遇到了与我认为的指针相关的错误。当代码在屏幕上时,我没有遇到问题,但是,当我尝试构建代码时,我收到一条错误消息,说"语法错误:缺少";"在"*"之前

法典:

class State: public Transition
{
protected:
StateContext* currentContext;
public:
State(StateContext* Context);
};

任何建议将不胜感激。干杯

(有时C++编译错误消息可能有点神秘)。

您需要转发声明StateContext 。在类声明之前,包括以下行

class StateContext;

然后在State的实现中,确保包含StateContext的类声明。

您需要包含StateContext的定义或前向声明类StateContext并在实现文件中添加标头:

#include "StateContext.h"
class State: public Transition
{
protected:
StateContext* currentContext;
public:
State(StateContext* Context);
};

或:

class StateContext;
class State: public Transition
{
protected:
StateContext* currentContext;
public:
State(StateContext* Context);
};
转发

声明允许您使用指向要转发的类的指针或引用,而无需包含此类的标头,只要您不在此类指针或引用上调用任何方法(或使用其数据)。