![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
![]()
Это всего лишь вопрос формулировки. Такие отношения можно реализовать на любом языке, яркий пример - Java. Там нет h/cpp файлов. И как по-твоему различать интерфейс и реализацию класса?
Дело в том, что ты сразу же привязал задачу к языку - но язык это всего лишь средство. Здесь же вопрос стоит о дизайне иерархии и отношений между сущностями. |
![]() |
![]() |
![]() |
#12 | |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2MaTBeu
здесь стоит вопрос, как это лучше сделать на с++ (во всяком случае судя коду). Цитата:
... } class A implements I { ... } наверное так
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
|
![]() |
![]() |
![]() |
#13 | |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
![]()
А зачем делать интерфейс на один класс? Интерфейс призван унифицировать доступ ко всем классам, которые его реализуют. Проинвертировать зависимость между уровнями. В нашем случае, ни о каких интерфейсах речь не идет. Поэтому смысла писать интерфейс, чтобы реализовать его в одном классе я не вижу.
Цитата:
ПыСы: черт, если мне придется еще раз объяснять различие между проектированием и написанием кода, я повешусь. |
|
![]() |
![]() |
![]() |
#14 | |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2MaTBeu
Цитата:
мне ничего объяснять не надо. человек ясно дал понять, что решение требуется на плюсах. вот я и рассматриваю решение на плюсах. поэтому и проектирование я прикручиваю к написанию. пс. не во всех ооп языках кстать есть возможность объявления вложенных классов
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
|
![]() |
![]() |
![]() |
#15 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
c#? Ваше сообщение слишком короткое. Оно должно быть не менее 10 символов.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#16 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,091
|
![]()
Оба варианта имеют право на жизнь. Первый явно показывает, что рука может быть только у человека и интерфейс класса (в данном случае имеется ввиду не interface, а public часть класса, которая так же называется интерфейсом) не предполагает использование этих самых рук.
Второй вариант лучше подходит для последующего развития. Если вдруг еще какие-то существа с руками появятся ![]() В целом ООП такая штука, что классы и методы можно проектировать как угодно. Главное - чтобы вся система была выстроена в одном стиле, а деление на классы и их расположение - это уже дело субъективное и зависит от многих факторов. Проанализируйте варианты использования своего класса "человек" и решение само найдётся. Вдруг всплывёт задача, при которой руку лучше наружу отдавать пользователю класса и в варианте с вложенным классом придется цеплять костыли. Так что не зная что это за классы и какие функции они выполняют, я бы не стал выделять из этих двух вариантов лучший. Может тут и классы эти вовсе не нужны. |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ООП как лучше, и почему так. | optimist32 | Общие вопросы C/C++ | 6 | 15.11.2009 04:43 |
Паскаль ООП. Примеры программ с использованием ООП | SeЯgey | Помощь студентам | 5 | 13.05.2009 21:55 |
в какой универ поступить | L1NK. | Помощь студентам | 3 | 20.08.2008 20:42 |