forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=109)
-   -   Кто мои дети или вопрос наследования... (http://forum.boolean.name/showthread.php?t=3772)

dimanche13 28.06.2007 21:51

Кто мои дети или вопрос наследования...
 
Вот такая проблемма, у меня есть классы (я зову их дети) унаследованные от одного родителя. По eachin я могу их все перебирать в списке. А как мне выделить какой-то один тип и получить доступ к его переменным?
TParant - родитель
Tson extends TParant
Tdouther extends TParant

For Local AllChildren : TParant = EachIn GameObjList
it = Tson(AllChildren)
if(it) ' если он
it.x = 1 эвот здесь ошибка.....
end if
Next

moka 28.06.2007 23:11

Re: Кто мои дети или вопрос наследования...
 
Тебе нужно создать для каждого класса отдельный список, и при создании эллемента вносить в соответствующий список. Если ещё и для всех хочешь, то создай ещё один список, и при создании дополнительно ещё и в этот вноси эллемент. Таким образом у тебя будут списки отдельно каждого эллемента и один общий.
Тут ещё зависит как ты оформляешь это в классах.
Я обычно у родителя создаю только 2 функции, 1 - заносит в список, 2 - удаляет эллемент.
Если я правильно понял вопрос :)

dimanche13 29.06.2007 11:14

Re: Кто мои дети или вопрос наследования...
 
Спасибо, да думаю такой способ сработает. Но хотелось бы обойтись одним списком, для всех. А родительский класс примерно такой же, как у тебя + еще абстрактные функции общие для всех и x & y.

moka 29.06.2007 16:46

Re: Кто мои дети или вопрос наследования...
 
Есть варриант во время перебора глобального списка, проверять на принадлежность определённому классу, но это менее производительно чем отдельно по списку на класс. Вообще иметь глобальный и отдельные удобно, например можно ещё создать один список для всех классов юнитов (если есть много классов для юнитов), таким образом будешь работать только с ними.
Лично я предпочитаю, поменьше классов, и больше их динамики и настраиваемости, таким образом они могут держать больше разных эллементов, которые будут достаточно отличаться, и в то-же время будут использовать почти все доступные значения класса.

dimanche13 29.06.2007 17:51

Re: Кто мои дети или вопрос наследования...
 
Да я уже сообразил :) точнее все это описано в руководстве от wave. Думаю пока буду пользоваться одним глобальным листом объектов. Потом в зависимости от полученной производительности, выкидывать классы в отдельные листы...


Часовой пояс GMT +4, время: 05:48.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot