| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Взаимодействие между классами |
| Автор: deaks 16.2.2011, 17:03 |
| Добрый день, посоветуйте, как лучше всего(в рамках чистого с++) в данном случае организовать передачу данных между классом MissileDynamic и MissileACS - ситуация, когда один класс использует переменную, а потом второй хочет ее так же видеть По хорошему они не должны знать друг о друге ничего. И все должно реализоваться через Object, который в себя включает Динамику(Dynamic) и Управление(Control) и предоставляет интерфейсы для общения со своими потомками Соответственно система включает в себя еще больше компонентов, показана лишь часть. ![]() |
| Автор: bsa 16.2.2011, 17:48 |
| Это говорит об ошибке проектирования... Давай поподробней о переменной и зачем она нужна классам. |
| Автор: deaks 16.2.2011, 17:52 |
| Грубо говоря: класс Динамики - инициализирует переменную Скорость и изменяет в процессе работы, а класс Управления - использует эту переменную допустим для расчета маневра |
| Автор: bsa 16.2.2011, 18:25 |
| координаты, скорость, ускорение - это характеристики объекта. Поэтому логично перенести их в соответствующий класс. Как вариант, можно сделать класс DynamicObject (наследник Object), у которого есть эти характеристики. А IControl и IDynamic умеют работать уже с ним, а не с Object. |
| Автор: deaks 16.2.2011, 18:50 |
| да, со скоростью я привел неудачный пример: примерно так - объекты могут быть двух типов: самолет и машина в Динамике самолета присутствует величина Угол атаки, которая несвойственна машине и поэтому ее нельзя выделить в параметры объекта. Следовательно как-то этот угол атаки надо протащить до Управления. Как быть?) |
| Автор: bsa 17.2.2011, 12:15 |
| deaks, значит должно быть "управление", которое работает только с самолетом. Нет же смысла его использовать для объекта "машина". |