Есть два класса: CListElem, банальный двунаправленный список, и CListManager, объявленный как friend для CListElem. В менеджере хранится указатель на первый элемент списка, объявленный protected, и отдавать его на публику (и через функции аля
CListManager::GetFirst() или CListManager::GetNext() тоже) крайне нежелательно.
Задача реализовать механизм, который бы позволял вызывать для каждого элемента списка некоторую функцию, которая может быть определена как в классе CListElem, так и в его потомке.
Честно сказать, меня это несколько озадачило... Кабы мыжно было отдавать на публику элементы списка, все было бы просто, а тут... гм.