Russian Community

Добрый день, Я динамически меняю количество реплицированных объектов моего класса методами setup_ и dispose_ Так же как например это сделано в модели Urban dinamics Agent Based: setup_person (new Person(), person.size()) и if ( ...){ dispose_person (this); } Проблема в том что, поскольку кто-то из объектов удаляется, а кто-то добавляется - person.size() - величина не постоянная и создается несколько реплицированных объектов с одним и тем же номером, причем абсолютно идентичных (со всеми теми же параметрами и переменными). Это же можно увидеть в вышеназванной модели Urban Dinamics в дереве объектов класса Households. Допустим, это лечится - для создания новых обьектов можно каждый раз, когда вызывается функция прибавлять единичку к номеру нового элемента, чтобы не было дубляжей, НО тогда индексация объектов будет бесконечно расти, а среди более младших индексов будут образовываться дырки, т.е. например есть у нас агенты 0123, мы создаем 4 и 5, а 2 умирает, и теперь его место будет всегда пустое. Можно конечно изощриться и заполнить его место, но может есть какие-то стандартные средства? Кроме того, почему-то стали дублироваться объекты не только новые, но и старые, т.е. у меня дерево объектов выглядит вот так: -0 -0 -0 -1 -1 -2 -2 Параметры например у нулевого элемента одни и те же во всех трех случаях, и что самое обидное все эти дубляжи считаются за полноценные объекты, т.е. в даном случае у этого класса size()=7 И так же во всех моделях в примерах с динамически меняющимся количеством реплицированных объектов. Действительно есть такая проблема? Из-за чего это и есть ли лекарство?! Заранее спасибо
Дарья, номер, указываемый в качестве второго параметра метода setup_[object], нужен лишь для отладки модели и распознавания объектов в репликации. Иными словами, этот номер является лишь идентификатором конкретного объекта и не может влиять на значения переменных и прочих данных в объекте.