Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.10.2011, 03:22
savva вне форума Посмотреть профиль Отправить личное сообщение для savva Найти все сообщения от savva
  № 1  
Ответить с цитированием
savva
[+ 06.08.11]

Регистрация: Jul 2011
Сообщений: 79
По умолчанию Реализация дерева

Здравствуйте.

Нужно реализовать дерево. Что-то вроде 2-3 дерева,но количество элементов заранее неизвестно.

Структура примерна такова.

класс граф
хранит в себе 2 указателя на голову и указатель для работы с графом.
класс вершина
хранит в себе данные и список вершин которые исходят из этой вершин.

Для хранения списка вершин я выбрал список,линейный однонаправленный,но возникла проблема с реализацией списка,а точнее с его типизированием.

В С++ есть шаблоны,как их реализовать в AS3?

Если нужны коды мои,могу скинуть сюда если попросите. Проблема возникла,когда я попытался произвести перебор по графу. Элемент списка имеет метод
Код:
 public function getData() : Object
а мне нужно чтобы он возвращал тип вершины Vertex. Происходит не соответствие типов и программа не работает =/

Старый 03.10.2011, 04:27
stweet вне форума Посмотреть профиль Отправить личное сообщение для stweet Найти все сообщения от stweet
  № 2  
Ответить с цитированием
stweet
 
Аватар для stweet

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
Что мешает создать класс Vertex и у наследоваться от Object, это и будит ваш тип данных.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!

Старый 03.10.2011, 09:24
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 3  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Шаблонов нет. Храните Object'ы и используйте приведение типов (от Object к Vertex , например).
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.


Последний раз редактировалось -De-; 03.10.2011 в 09:30.
Старый 03.10.2011, 12:20
savva вне форума Посмотреть профиль Отправить личное сообщение для savva Найти все сообщения от savva
  № 4  
Ответить с цитированием
savva
[+ 06.08.11]

Регистрация: Jul 2011
Сообщений: 79
Так а как сделать приведение от Object к Vertex? Я vertex не наследую от Object.

ТО бишь мне нужно отнаследовать vertex от object?

а тип списка какой делать? я просто в списке завёл конструкцию type:Class; и при создании списка передаю ему этот тип.

Старый 03.10.2011, 12:42
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 5  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Цитата:
Сообщение от savva Посмотреть сообщение
Я vertex не наследую от Object.
Неправда =) В as3 всё от него наследуется)
Операторы as и is - азбука, надо иметь представление. Можно ещё погуглить as3 RTTI.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 03.10.2011, 16:07
savva вне форума Посмотреть профиль Отправить личное сообщение для savva Найти все сообщения от savva
  № 6  
Ответить с цитированием
savva
[+ 06.08.11]

Регистрация: Jul 2011
Сообщений: 79
Если бы я наследовал то у меня не вылетала ошибка
"Graph.as(29): col: 44 Error: Implicit coercion of a value with static type Object to a possibly unrelated type Vertex. "
когда я
Код AS3:
temp= temp.getList().getElembyInde(j).getData();
где temp:Vertex
а функция
Код AS3:
public class L1Elem 
	{
private var target:Object;
public var next:L1Elem;
......
public function getData():Object
		{
			return this.target;
		}
что за операторы as и is?( Применительно к моей ситуации)
Я программирую в основном на С++ Java и там такого нет
Просто решил попробовать написать ходилку на AS3. Хотя можно конечно Java applet сделать.

Старый 03.10.2011, 16:28
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 7  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Код AS3:
var element:Vertex =temp.getElementByIndex(j) as Vertex;
var data:Object = element.getData(); // тут тоже можно привести к желаемому типу
__________________
...вселенская грусть

Старый 03.10.2011, 16:31
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 8  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Вы путаете апкаст и даункаст. В as3, c++ и java, если A наследуется от B, то А всегда скастуется к В, а наоборот - нет, надо руками, иногда с проверками. У нас А - Vector, B - Object. В Java точно так же всё наследуется от Object.
Применительно к вашей ситуации рекомендую учиться пользоваться гуглом - вбейте туда "as3 оператор as", "as3 оператор is".
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Создать новую тему Ответ Часовой пояс GMT +4, время: 06:25.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.