I got a class declared as follows: class CWordItemList : public CList{ public: void AddTail(CWordItemList* pList); ... }; void CWordItemList::AddTail(CWordItemList *pList) { CList::AddTail(pList); //the program asserts(ASSERT_VALID) and throws an error ... } How should I derive from CList?