| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > ООП |
| Автор: fuckingniger 20.6.2011, 12:17 |
| Есть классы A, B, C. функция из класса С должна иметь доступ к данным классов A и B такое возможно? |
| Автор: azesmcar 20.6.2011, 12:26 |
| к каким данным? хотя возможно конечно в любом случае, но ответ на дальнейший вопрос "А КАК" зависит от спецификатора доступа. |
| Автор: triclosan 20.6.2011, 12:27 |
| сделайте С другом классов A и B |
| Автор: fuckingniger 20.6.2011, 12:32 |
| спецификатор private а как объект класса C поймёт с каким именно объектом он имеет общие данные? |
| Автор: azesmcar 20.6.2011, 12:34 |
| Автор: fuckingniger 20.6.2011, 12:46 | ||
|
| Автор: triclosan 20.6.2011, 12:52 |
| fuckingniger, у вас небось эти классы каким-то хитрым наследованием связаны, о котором вы почему-то умалчиваете |
| Автор: fuckingniger 20.6.2011, 12:57 |
| я наверное плохо умею объяснять просто и + не понимаю чего-то элементарного. Есть класс змейка Есть класс жизнь (или яблоко) Есть класс смерть (-1 жизнь) Эти классы никак не связаны(только жизнь и смерть от одного абстрактного наследуются) итак мне надо знать куда я походил змейкой. а чтобы узнать уперся ли я в яблоко или смерть или просто обычную пустую клетку, мне надо знать, что творится в масивах этих классов. что скажете? Добавлено через 2 минуты и 55 секунд мне приходит в голову только делать их public и в maine уже эти ситуации разруливать, но это как-то некрасиво. |
| Автор: mes 20.6.2011, 13:12 |
| походу Вас зациклело на слове класс.. Если не нужен класс - не делайте.. ООП от этого не пострадает, а наоборот обретет логичность.. Т.е. вначале нужно думать не какие классы нужны, а преставить модель взаимодействия, и после уже навешивать эту модель на классы.. Добавлено @ 13:17 У Вас есть поле, на нем разложены предметы, при перемещении змейки контролер игры проверяет что с кем столкнулось, какие следствия от этого, и указывает каждому из объектов как изменить состояние.. |
| Автор: fuckingniger 20.6.2011, 13:17 |
| в том то и дело, что нужны классы(это работа по предмету ООП)) то есть другого выхода кроме того, что я предложил нет ? |
| Автор: mes 20.6.2011, 13:19 |
Дело не в классах, Вы выход не в том месте ищете.. Добавлено через 2 минуты и 23 секунды никто не заставляет отказываться Вам от классов совсем, просто если к примеру составляете алфавит, тп далеко не всегда полезно определять для каждой буквы свой собственный класс.. Добавлено через 3 минуты и 15 секунд ООП не есть "компот из классов" |
| Автор: fuckingniger 20.6.2011, 13:22 | ||
это хорошая мысль |
| Автор: mekhanikus 21.6.2011, 11:03 |
| Ещё идея: Есть класс "Червь", если классы "Пустая ячейка", "Яблоко", "Бомба". При этом 3 последние класса - производные от класса "Ячейка". Перегружаем оператор "+" для операции "Червь"+"Ячейка". С каждым шагом делаем "Червь"+"Ячейка", результат будет зависеть от того, что прячется под "Ячейкой". |
| Автор: mes 21.6.2011, 20:40 |
и делаем его виртуальным, иначе смысла нет.. а после код логики отвечающий за это поведение будет раскидан по всей программе.. |