Klasy te są zaimplementowane jako część obszernego tematu jakim są dynamiczne struktury danych. Wymienione w nagłówku klasy mają funkcje obsługi identyczne jak np. klasa CstringList. Różnica tkwi w definiowaniu takich klas. Deklaracje klas wyprowadzaneych ze wzorców (templates) są sparametryzowane i tak:
a) CListtemplate< class TYPE, class
ARG_TYPE >
class CList : public
CObject
CList<"int, int"> m_intList;
lub
class CPerson : public CObject { . . . };
CList<"CPerson, CPerson&"> myList;
b) CTypedPtrList
class CPerson : public CObject { . . . };
CTypedPtrList<"CPtrList, MY_STRUCT*"> myList;