![]() |
Реализация дерева
Здравствуйте.
Нужно реализовать дерево. Что-то вроде 2-3 дерева,но количество элементов заранее неизвестно. Структура примерна такова. класс граф хранит в себе 2 указателя на голову и указатель для работы с графом. класс вершина хранит в себе данные и список вершин которые исходят из этой вершин. Для хранения списка вершин я выбрал список,линейный однонаправленный,но возникла проблема с реализацией списка,а точнее с его типизированием. В С++ есть шаблоны,как их реализовать в AS3? Если нужны коды мои,могу скинуть сюда если попросите. Проблема возникла,когда я попытался произвести перебор по графу. Элемент списка имеет метод Код:
public function getData() : Object |
Что мешает создать класс Vertex и у наследоваться от Object, это и будит ваш тип данных.
|
Шаблонов нет. Храните Object'ы и используйте приведение типов (от Object к Vertex , например).
|
Так а как сделать приведение от Object к Vertex? Я vertex не наследую от Object.
ТО бишь мне нужно отнаследовать vertex от object? а тип списка какой делать? я просто в списке завёл конструкцию type:Class; и при создании списка передаю ему этот тип. |
Цитата:
Операторы as и is - азбука, надо иметь представление. Можно ещё погуглить as3 RTTI. |
Если бы я наследовал то у меня не вылетала ошибка
"Graph.as(29): col: 44 Error: Implicit coercion of a value with static type Object to a possibly unrelated type Vertex. " когда я Код AS3:
а функция Код AS3:
Я программирую в основном на С++ Java и там такого нет:) Просто решил попробовать написать ходилку на AS3. Хотя можно конечно Java applet сделать. |
Код AS3:
|
Вы путаете апкаст и даункаст. В as3, c++ и java, если A наследуется от B, то А всегда скастуется к В, а наоборот - нет, надо руками, иногда с проверками. У нас А - Vector, B - Object. В Java точно так же всё наследуется от Object.
Применительно к вашей ситуации рекомендую учиться пользоваться гуглом - вбейте туда "as3 оператор as", "as3 оператор is". |
| Часовой пояс GMT +4, время: 07:22. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.