Re[5]: "Хитрый" проход по контейнеру полиморфных элементов.
От: ArtDenis Россия  
Дата: 19.01.04 08:52
Оценка:
Здравствуйте, Alxndr, Вы писали:

_>>Передавая таким образом this как указатель на конкретного наследника

_>>5) а в функциях process(...) менеджер может творить всё что угодно, ориентируясь на известные ему интерфейсы наследников game_object'a

A>Вот здесь корень зла: объект может быть как drawable, так и serializable.


Тебе нужно определится, что для тебя важнее:
1. Высокая скорость прохода по объектам
2. Расширяемая функциональность и независимость от реализации базовых классов.

Если первое — то виртуальные функции и "жирный" интерфейс, если второе — то тут несколько вариантов:
а. Интерфейсы, раелизующие вызов функции по её классу.
б. Самый банальный способ — множественное (+виртуальное) наследование и dynamic_cast.
в. Способ "наращивания" возможностей (аля VCL) — в нкаждом новом производном классе наращивается какая-нибудь функциональность. Название класса соответствует функциональности.

И ещё замечание: откуда такое требование — хранить всё объекты в одном контейнере. Ихмо — все проблемы из-за него.

PS: если возникают вопросы, требующие нетревиальных решений, это означает, что что-то неправильно спроектировали.
... << RSDN@Home 1.1.2 stable >>
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.