10
我有一個結構「MachineState」,我創建了一個「MachineState *」類型的列表。當我嘗試通過列表迭代我不斷收到「表達式必須具有指針類型
error C2839: invalid return type 'MachineState **' for overloaded 'operator ->
我使用微軟的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;
};
我宣佈名單的
std::list<MachineState*> zombs;
這裏就是我試圖通過我的列表進行迭代,我不斷收到錯誤,在」 it-> point1「說t他表達式必須有一個指向類類型的指針。
for(std::list<MachineState*>::iterator it = zombs.begin(); it != zombs.end(); it++)
{
Point points[3] = {it->point1, it->point2, it->point3};
Point* pPoints = points;
SolidBrush brush(Color(255, 255, 0, 0));
m_GraphicsImage.FillPolygon(&brush, pPoints,3);
}
如果誰能給我解釋一下什麼是wron
這是正確的答案。對不起,我是C++的初學者。你能否通過解引用告訴我你的意思?非常感謝你的回答 – 2013-04-24 04:21:27
@JohnKemp看我的編輯。 – 2013-04-24 04:33:00
謝謝@DrewDormann。現在我明白了 – 2013-04-24 06:29:46