关于MFC的POSITION类型的疑问
看mfc源码,有几点疑问,下面是POSITION的定义
// abstract iteration position
struct __POSITION { };
typedef __POSITION* POSITION;
下面是CList中它的用法
AFX_INLINE TYPE& CList<TYPE, ARG_TYPE>::GetNext(POSITION& rPosition) //
{
CNode* pNode = (CNode*) rPosition;
ASSERT(AfxIsValidAddress(pNode, sizeof(CNode)));
rPosition = (POSITION) pNode->pNext;
return pNode->data;
}
三个问题
1.为什么微软不用STL中Iterator的方法来写这个POSITION类?
2.既然不用Iterator,那么用void *类型也是可以,为什么不用?
3.c++怎么来看待空结构,有什么具体的用法和技巧?