Зачем было плодить новые грабли на основе той же ошибочной концепции, что и поделка MQ. Хранить итераторы в самих объектах и изменять их - это абсурд, нарушение инкапсуляции, приводящее к непредсказуемым последствиям, если объект окажется помещённым в нескольких контейнерах.
Для этих целей должен служить вспомогательный объект-контейнер ListNode, создаваемый списком. А сами клиентские объекты трогать нельзя. Можно этот CObject переименовать в CListNode, тогда всё встанет на свои места. Ну и добавить в нём виртуальный метод:
virtual CObject* GetObject() const { return &this; }
Зачем было плодить новые грабли на основе той же ошибочной концепции, что и поделка MQ. Хранить итераторы в самих объектах и изменять их - это абсурд, нарушение инкапсуляции, приводящее к непредсказуемым последствиям, если объект окажется помещённым в нескольких контейнерах.
Для этих целей должен служить вспомогательный объект-контейнер ListNode, создаваемый списком. А сами клиентские объекты трогать нельзя. Можно этот CObject переименовать в CListNode, тогда всё встанет на свои места. Ну и добавить в нём виртуальный метод:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Связанный список.:
Краткое описание
Автор: Vladimir Simakov