我有一个结构"MachineState",我创建了一个类型为"MachineState*"的列表.当我尝试迭代列表时我继续"
error C2839: invalid return type 'MachineState **' for overloaded 'operator ->
Run Code Online (Sandbox Code Playgroud)
我正在使用Microsoft Visual Studio 10.我搜索了错误,我发现的所有内容是" - - 运算符必须返回一个类,结构或联合,或者引用一个."
Struct MachineState
{
template <typename MachineTraits>
friend class Machine;
enum Facing { UP, RIGHT, DOWN, LEFT};
MachineState()
: m_ProgramCounter(1)
, m_ActionsTaken(0)
, m_Facing(UP)
, m_Test(false)
, m_Memory(nullptr)
,x(0)
,y(0)
,point1(25, 10)
,point2(10, 40)
,point3(40, 40)
{ }
int m_ProgramCounter;
int m_ActionsTaken;
Facing m_Facing;
bool m_Test;
int x;
int y;
Point point1;
Point point2;
Point point3;
};
Run Code Online (Sandbox Code Playgroud)
我将列表声明为
std::list<MachineState*> zombs;
Run Code Online (Sandbox Code Playgroud)
这里是我尝试迭代我的列表并且我继续得到错误,在"it-> point1"上说表达式必须有一个指向类类型的指针. …