| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Создание класса-обертки |
| Автор: REZiaMIX 27.10.2008, 22:55 | ||||
| Есть класс TAnimation , с функцией Render... Функция использует глобальные переменные(от которых в посл. надо избавиться) . + класс TAnimations (метод Render тоже присутствует), представляющий собой массив анимаций , и функции для массовой их обработки - в чистом виде не используется , только наследуется. Итого , имеем множество классов например: TBullets,THumans - все наследуют TAnimations. Надо сделать класс-обертку для всей анимации, но проблема в том , что классов может быть неизвестное кол-во , и каждый раз дописывать код в обертку не красиво и не гибко. Каким образом реализовать такой класс(в полиморфизме и тд не очень разбираюсь) , с учетом того , что у всех исходных есть функция Render? Пояснение:
Есть вариант , хранить в векторе указатель на функции рендера , и вызывать их в цикле, но все исходные классы должны получать те глобальные переменные(можно передать как аргумент). Но что то мне подсказывает , что есть более правильный выход! В идеале бы хотелось так(понятно что не будет работать , но для примера):
Заранее сенкс за ответы! |
| Автор: mes 27.10.2008, 23:11 | ||
|
| Автор: REZiaMIX 27.10.2008, 23:19 | ||||
Этот кусок кода уже реализован , вопрос стоит в другом;
Соответственно если я напишу класс TFlowers, то в класс TAllAnimation надо будет дописать TFlowers в двух местах , нужно сделать обобщенный рендер , не в зависимости от класса(при условии наличия у них фции render)
Не будет ли ошибкой добавление в вектор указателя на TBullets , приведенного к указ. на IAnimation( (IAnimation*)&TBullets )??? //ПС , точнее его дальнейшее использование ! |
| Автор: mes 27.10.2008, 23:25 | ||
вот подправил пример под вашу задачу:
однако советую разобраться с полиморфизмом, чтоб найти к Вашей задаче наиболее подходящее решение |
| Автор: mes 28.10.2008, 19:09 | ||
а зачем в данном случае синглетон? а вобще это плохая тенденция применять патерны где они не нужны, только потому что у них название звучное.. |
| Автор: REZiaMIX 29.10.2008, 14:11 |
| Всем спасибо , буду разбираться! |
| Автор: Torsten 29.10.2008, 15:51 | ||
потому что удобно. Зачем - чтобы иметь возможность доступа к обьекту из любой точки. И насколько я понял обьект этот 1 и смысл создовать таких обьектов более 1 - нету. |