CTypedPtrList<CPtrList,TBPOINT*> m_TabuList;//一个CTypedPtrList数组,
//TBPOINT是我自己定义的一种数据类型.
我在CMyAppDoc中定义了TBPOINT ptNode[10].
后面也给他们服了值,是不是可以这样
TBPOINT *tmpNode;
*tmpNode=ptNode[3];
m_TabuList.addHead(tmpNode);
还是非要:
TBPOINT *tmpPoint;
tmpPoint=new TBPOINT;
tmpPoint=&(PtNode[3]);
m_TabuList.AddTail(tmpPoint);
对于一个CTypedPtrList来说,new一个对象是不是有必要???
请指教!!
//TBPOINT是我自己定义的一种数据类型.
我在CMyAppDoc中定义了TBPOINT ptNode[10].
后面也给他们服了值,是不是可以这样
TBPOINT *tmpNode;
*tmpNode=ptNode[3];
m_TabuList.addHead(tmpNode);
还是非要:
TBPOINT *tmpPoint;
tmpPoint=new TBPOINT;
tmpPoint=&(PtNode[3]);
m_TabuList.AddTail(tmpPoint);
对于一个CTypedPtrList来说,new一个对象是不是有必要???
请指教!!
*tmpNode=ptNode[3];
m_TabuList.addHead(tmpNode);这是局部变量,想想他们的生存周期
我认为必须要new
typedef ptNode[10] TBPOINT; 不太好, 会导致以下情况TBPOINT * p = new TBPOINT;
delete[] p; // 必须用 delete[] 因为 TBPOINT 实质上是数组// 此外,拷贝和添加应该这样写
ptNode PtNode[3] = ...;TBPOINT *p = new TBPOINT;
memcpy(p, PtNode, sizeof(ptNode[3]));
m_TabuList.AddTail(p);