![]() |
|
Модераторы: Poseidon |
![]()
|
|
| shilovec5377 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 15.5.2013 Репутация: нет Всего: нет |
Всем привет.
На данном этапе просто хочу убедиться, что наследование реализовано корректно. Но когда пробую вызвать GetName, то возвращается только geometry. Остальные значения - пустые. Подорзреваю, что это из-за того, что неправильно работают конструкторы. Как это исправить? Т.е., я хочу добиться того, чтобы на данном этапе программа выдавала geometry polyline polygon ellipse rectangle а не только geometry (а затем 4 пустые строки). Условие задачи Разработать иерархию классов для представления геометрических фигур: прямая, ломанная, прямоугольник, эллипс, многоугольник. Разработать контейнер для хранения фигур. Контейнер для хранения фигур реализовать в виде интерфейса с общими методами для всех фигур. Классы каждой из фигур должны быть реализацией данного интерфейса.
|
|||
|
||||
| PointerToNil |
|
|||
![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 17.6.2013 Репутация: нет Всего: 6 |
1) GetName - это функции, они должны возвращать результат. это делает только TGeometry.GetName, остальные - НЕТ
2) ты абсолютно зря писал столько никчемных GetName и SetName - они нужны только в TGeometry, а наследники их просто наследуют (без объявлений и кода) - в этом и состоит фишка наследования: нужный код пишется один раз и не повторяется 3) хороший тон - объявить (в TGeometry) property Name: String read GetName write SetName 4) GetName тоже не нужен, если написать property Name: String read FName write SetName 5) SetName в твоей реализации тоже не нужен, если написать property Name: String read FName write FName, но на будущее оставь 6) какие-то очень странные у тебя ломаная и многоугольник: строго по 4 и 5 точек соответственно. в общепринятом понимании у них может быть произвольное число точек (но > 1 и > 2 соответственно) 7) эллипс - никакой не многоугольник, зря ты так его наследуешь (классика: "M - наследник N" означает, что M является (разновидностью) N) |
|||
|
||||
| drkot |
|
||||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: нет Всего: 8 |
почему выбран этот родитель? Вы что планируете работать с интерфейсами?
Приминительно к делфе звучит как легкий бред... Где интерфейсы в Вашей реализации?
что под этим понимается? Они визуальны, или нет? Если визуальны, то должен единый метод рисования... также должна быть возможность прочитать и записать себя в поток (контейнер), или "контейнер" это некая структура в памяти? То что Вы привели скорее есть не зависимые объекты по какой-то причине имеющие общего предка. Рекомендации: - первый класс делается не функциональным, он содержит набор абстрактных функций общих для ВСЕХ наследников - следующий реализует "пустую" фигуру или точку (как по мне лучше первое) - далее идет ветвление по типам фигур - функции объявленные в предках не ПЕРЕОПРЕДЕЛЯЮТСЯ, а только перекрываются. (это касается SetXY ) - если предполагается использование интерфейсов, то кроме дерева классов строится и дерево интерфейсов (функциональностей), они могут быть структурно различны. Советую изучить имеющиеся решения и главное определиться с задачей. Мне например очень много не понятно в задании. -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
||||
|
|||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 5 Всего: 133 |
Для домашних заданий, контрольных и курсовых существует Центр помощи.
Тема перенесена! -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |