![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
deaks |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.9.2009 Репутация: нет Всего: нет |
Добрый день,
посоветуйте, как лучше всего(в рамках чистого с++) в данном случае организовать передачу данных между классом MissileDynamic и MissileACS - ситуация, когда один класс использует переменную, а потом второй хочет ее так же видеть По хорошему они не должны знать друг о друге ничего. И все должно реализоваться через Object, который в себя включает Динамику(Dynamic) и Управление(Control) и предоставляет интерфейсы для общения со своими потомками Соответственно система включает в себя еще больше компонентов, показана лишь часть. ![]() |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Это говорит об ошибке проектирования... Давай поподробней о переменной и зачем она нужна классам.
|
|||
|
||||
deaks |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.9.2009 Репутация: нет Всего: нет |
Грубо говоря:
класс Динамики - инициализирует переменную Скорость и изменяет в процессе работы, а класс Управления - использует эту переменную допустим для расчета маневра |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
координаты, скорость, ускорение - это характеристики объекта. Поэтому логично перенести их в соответствующий класс. Как вариант, можно сделать класс DynamicObject (наследник Object), у которого есть эти характеристики. А IControl и IDynamic умеют работать уже с ним, а не с Object.
|
|||
|
||||
deaks |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.9.2009 Репутация: нет Всего: нет |
да, со скоростью я привел неудачный пример:
примерно так - объекты могут быть двух типов: самолет и машина в Динамике самолета присутствует величина Угол атаки, которая несвойственна машине и поэтому ее нельзя выделить в параметры объекта. Следовательно как-то этот угол атаки надо протащить до Управления. Как быть?) |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
deaks, значит должно быть "управление", которое работает только с самолетом. Нет же смысла его использовать для объекта "машина".
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
и если нужно по полиморфной базе определить кем , является в действительности объект, то 1. id + static_cast 2. dynamic_cast 3. double dispatch третий наиболее безопасный и удобный способ, но требует стабильной иерархии и некоторой подготовки исполнителя, в связи с чем, судя по формулировке вопроса, тс будет трудновато.. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |