ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
983694 Топик полностью
Ксения (03.03.2020 16:55 - 16:59, просмотров: 240) ответил Dingo на Ксения, так получается, что массив-то как раз однородных элементов - адресов в памяти, а вот уже на что адрес и что с этим содержимым можно делать - само "это" и содержит. Так?
Вы верно поняли: раз объекты стали разной длины, то их линейное упорядочивание теряет смысл. А потому уже не стремятся к линейному порядку, а заводят каждый объект из динамической памяти, а упорядочивают только указатели на них. Варианта для этого два. Первый по-старинке - организовать массив из указателей, чтобы обегать его в цикле for. Второй вариант новый - вести в состав класса функции Last() и Next(), которые возвращают указатель на предыдущий и последующий объект (по умолчанию в порядке их создания). А затем создаются Итераторы, которые со всеми объектами делают то, что закажешь. Второй вариант обычно предпочитают за то, что не надо заводить массив для указателей и всякий раз реаллокировать его размер, когда число объектов изменяется. Здесь всякий объект пред тем как сдохнуть :), соединяет цепочку между объектами, указуемыми через Last() и Next(), исключая себя из нее. Получается хоровод со свободным входом и выходом из него участников. А Итератор этот хоровод вертит.