If it is necessary to store a class or struct, a CObList can be used. The following is a simple sample of using a CObList:
class CStringObject : public CObject {
DECLARE_DYNAMIC(CStringObject)
public:
CString m_String;
};
IMPLEMENT_DYNAMIC(CStringObject, CObject)
CStringObject *pStringObject;
POSITION ObjectListPos;
CObList ObjectList;
pStringObject = new CStringObject;
pStringObject->m_String = "First Object";
ObjectListPos = ObjectList.AddTail(pStringObject);
pStringObject = new CStringObject;
pStringObject->m_String = "Last Object";
ObjectListPos = ObjectList.AddTail(pStringObject);
ObjectListPos = ObjectList.GetHeadPosition();
while (ObjectListPos!=NULL) {
pStringObject = (CStringObject *) ObjectList.GetNext(ObjectListPos);
TRACE1("%s\n", pStringObject->m_String);
delete pStringObject;
}
ObjectList.RemoveAll();
See my Visual C++ Programmer Stuff page for more C++ stuff.