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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.08.2009, 12:29
Troglodit вне форума Посмотреть профиль Отправить личное сообщение для Troglodit Найти все сообщения от Troglodit
  № 1  
Ответить с цитированием
Troglodit

Регистрация: Feb 2001
Сообщений: 33
По умолчанию проверка класса и интерфейса компилятором?

привет! У меня вопрос по ас3 ООП: мне нужно чтобы в функцию передавался только объект наследованый от Boo и имеющий интерфейс IGoo. Как это можно реализовать без проверок ифами, на уровне компилятора ?

спасибо

Старый 18.08.2009, 12:51
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Boo должен имплементить IGoo.
__________________
Hell is the possibility of sanity

Старый 18.08.2009, 12:52
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Никак. Во всяком случае, на текущий момент.

Старый 18.08.2009, 13:20
Troglodit вне форума Посмотреть профиль Отправить личное сообщение для Troglodit Найти все сообщения от Troglodit
  № 4  
Ответить с цитированием
Troglodit

Регистрация: Feb 2001
Сообщений: 33
Цитата:
Сообщение от wvxvw Посмотреть сообщение
Boo должен имплементить IGoo.
Ну тут вся суть в том чтобы заставить переданый класс обязательно оверрайдить все методы интерфейса, а при Вашем варианте обязательность теряется

Старый 18.08.2009, 13:27
fljot вне форума Посмотреть профиль Отправить личное сообщение для fljot Найти все сообщения от fljot
  № 5  
Ответить с цитированием
fljot

блогер
Регистрация: Jul 2007
Сообщений: 940
Записей в блоге: 3
по-моему, такой вариант решил бы поставленную задачу
Код:
class BaseGoo extends Boo implements IGoo

function (param:BaseGoo):...
upd:
ну и методы интерфейса не оверрайдятся, а реализуются.. если необходимо, чтобы класс передаваемого экземпляра обязательно не пустым образом реализовывал эти методы - можно в классе BaseGoo во всех методах IGoo выбрасывать ошибки, тогда наследникам придётся все методы переписывать.. если я правильно вас понял вообще


Последний раз редактировалось fljot; 18.08.2009 в 13:30.
Старый 18.08.2009, 16:38
Troglodit вне форума Посмотреть профиль Отправить личное сообщение для Troglodit Найти все сообщения от Troglodit
  № 6  
Ответить с цитированием
Troglodit

Регистрация: Feb 2001
Сообщений: 33
о! Это мысль! (насчет ошибок). Правда это не на стадии компилятора будет но все же лучше чем ничего. Спасибо!

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

блогер
Регистрация: Apr 2009
Адрес: НиНо
Сообщений: 185
Записей в блоге: 12
а virtual разве в ActionScript нет(это насчёт обязательного оверрайда/реализации)?

Старый 18.08.2009, 19:06
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Компилятор поддерживает, плеер — нет. Для порядку virtual стоит писать.

Старый 18.08.2009, 21:01
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 9  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Фишка в том, что в AS3 virtual - это антоним override. Т.е. любая функция, которая не override считается virtual (не важно, указали вы это или нет).
__________________
Hell is the possibility of sanity

Старый 18.08.2009, 21:56
Герыч вне форума Посмотреть профиль Отправить личное сообщение для Герыч Найти все сообщения от Герыч
  № 10  
Ответить с цитированием
Герыч
 
Аватар для Герыч

блогер
Регистрация: Apr 2009
Адрес: НиНо
Сообщений: 185
Записей в блоге: 12
а, ё-маё, чушь тут городю) уже полгода к C++ не прикосался.. хотел сказать чистая виртуальная функция.
в c++ это так вролде записывается:
Код:
virtual void doSmth() = 0;
она делает класс абстрактым и требует переопределения в дочернем.

такого нет в AS?

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

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

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


 


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


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