求解,关于CList的GetNext遍历出现的问题
本帖最后由 ReversalC 于 2013-11-04 15:00:46 编辑
POSITION pos = m_theDestObjList.GetHeadPosition();
POSITION pos1 = NULL;
DestObj* ptheDestObj = NULL;
for (int i=0;i < m_theDestObjList.GetCount();i++)
{
pos1 = pos;
ptheDestObj = m_theDestObjList.GetNext(pos);// 这里的pos在什么情况下会为
//NULL,还是我这种访问方式本身就有问题?求好心帮我解答这个问题,谢谢
if( 条件为真 )
{
lock();
m_theDestObjList.RemoveAt(pos1);
unlock();
}
// 做事...
}
//
// GetNumFreePins
//
int CTee::GetNumFreePins()
{
int n = 0;
POSITION pos = m_OutputPinsList.GetHeadPosition();
while(pos) {
CTeeOutputPin *pOutputPin = m_OutputPinsList.GetNext(pos);
if (pOutputPin->m_Connected == NULL)
n++;
}
return n;
} // GetNumFreePins