मेरे पास "मशीनस्टेट" संरचना है और मैंने "मशीनस्टेट *" प्रकार की एक सूची बनाई है। मैं "अभिव्यक्ति में पॉइंटर-टू-क्लास-टाइप होना चाहिए
error C2839: invalid return type 'MachineState **' for overloaded 'operator ->
मैं माइक्रोसॉफ्ट विजुअल स्टूडियो 10 का उपयोग कर रहा मैं त्रुटि googled और सब मैं बाहर मिल सकता था" मिलती रहती है जब मैं सूची के माध्यम से पुनरावृति करने की कोशिश करो -> ऑपरेटर एक वर्ग, struct लौटना चाहिए , या संघ, या एक के लिए एक संदर्भ। "
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;
यहाँ है, जहां मैं अपने सूची के माध्यम से पुनरावृति करने के लिए कोशिश करते हैं और मैं त्रुटि मिलती रहती है, पर" यह-> बिंदु 1 "कह रहा है कि टी अभिव्यक्ति में कक्षा के प्रकार के लिए एक सूचक होना चाहिए।
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
सही जवाब है कि का उपयोग करना चाहिए है। मुझे खेद है, मैं सी ++ में शुरुआत कर रहा हूं। क्या आप मुझे बताएंगे कि आपका मतलब क्या है? उत्तर के लिए बहुत बहुत धन्यवाद –
@JohnKemp मेरा संपादन देखें। –
धन्यवाद @DrewDormann। अब मुझे समझ आई –