小编Joh*_*emp的帖子

表达式必须具有指向类的指针类型

我有一个结构"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"上说表达式必须有一个指向类类型的指针. …

c++ struct pointers iterator list

11
推荐指数
1
解决办法
3万
查看次数

标签 统计

c++ ×1

iterator ×1

list ×1

pointers ×1

struct ×1