|
0 / 0 / 0
Регистрация: 25.04.2012
Сообщений: 10
|
|
Множественное наследование: прямоугольник, квадрат, ромб, параллелограмм25.04.2012, 18:12. Показов 12970. Ответов 47
Метки нет (Все метки)
Помогите, пожалуйста, разработать иерархию.
В дальнейшем надо реализовать несколько методов, среди которых изменение размера и вычисление площади. Пока остановился на двух вариантах. 1) Квадрату достаточно одного свойства, длинна стороны. От него наследуется прямоугольник(добавляется свойство ширина) и ромб(добавляется свойство высота к одной из диагоналей). От ромба и прямоугольника наследуется параллелограмм( получаем все необходимые свойства). 2) В обратном порядке от параллелограмма ромб и прямоугольник, от них уже квадрат. Смущает то, что методы увеличения размера и вычисления площади у каждого класса будут свои. Зачем тогда наследование? Если неправ, укажите правильный путь))))
0
|
|
| 25.04.2012, 18:12 | |
|
Ответы с готовыми решениями:
47
Множественное наследование: определить класс Окружность, вписанная в ромб
|
|
|
||
| 26.04.2012, 00:00 | ||
|
0
|
||
|
What a waste!
1612 / 1304 / 180
Регистрация: 21.04.2012
Сообщений: 2,735
|
||
| 26.04.2012, 00:05 | ||
|
0
|
||
|
|
||
| 26.04.2012, 00:06 | ||
|
вроде хитрого определения пересечения сторон с вписанной окружностью второго ромба bool IsThere_Intersection_Of_InnerCircleOfRom b1_With_Diagonal_Of_Romb2(Romboid* item1, Romboid* item2); То не сможешь передавать ей квадраты. И придётся копипастить ещё 2 функции bool IsThere_Intersection_Of_InnerCircleOfSqu are1_With_Diagonal_Of_Romb2(Square* item1, Romboid* item2); bool IsThere_Intersection_Of_InnerCircleOfSqu are1_With_Diagonal_Of_Square2(Square* item1, Square* item2);
0
|
||
|
Заблокирован
|
|
| 26.04.2012, 00:09 | |
|
Пока ничего не понял. Просто по русски скажите, в чем могут быть проблемы.
Просто скажите, какая задача вызовет трудности?
0
|
|
|
|
|
| 26.04.2012, 00:18 | |
|
Ты создал функцию, которая принимает указатель на 2 ромба и делает с ним какое-то действие, свойственное только ромбам.
Например находит точку пересечения их вписанных окружностей. Для прямоугольника это бессмысленно, а для ромба можно. Теперь у тебя есть два квадрата. Они унаследовали такое св-во ромба, как вписанная окр-ть Будешь ли ты писать две новых функции для выполнения этого алгоритма между квадратами и между ромб и квадратом????? Или воспользуешься наследованием???
0
|
|
|
Заблокирован
|
|
| 26.04.2012, 00:29 | |
|
Вот в данном случае тот подход, который я, да и Вы тоже кстати реализовывали пока, только, на мой взгляд не очень корректно, не позволяет решить эти задачи.
Мы в данном случае на самом деле пытались построить класс конгруэнтных параллелограммов, то есть равных между собой с точностью до параллельного переноса, вращения, симметрии и любой их комбинации. Вы же в данном случае перескакиваете с синтетики на аналитику. Если так охота, то пожалуйста. И вот здесь (но надо тоже все оценить) наверно можно из этого абстрактного класса конгруэнтных параллелограммов наследовать КОНКРЕТНЫЕ ПАРАЛЛЕЛОГРАММЫ, то есть прибивать их к плоскости и вот тогда можно приступать к анализу Вашей новой задачи. А так вот с бухты-барахты я Вам на Ваш вопрос не отвечу. P.S. Открою Вам страшную тайну. Если в выпуклый многоугольник можно вписать окружность, то радиус оной равен отношению площади данного многоугольника к его полупериметру.
0
|
|
|
Higher
|
||
| 26.04.2012, 12:12 | ||
|
Ромб не является параллелограммом с точки зрения ООП, т.к. параллелограмм характеризуется 2 сторонами и углом между ними, а ромб - 2 диагоналями, поэтому наследование тут неуместно. И вообще, играться с наследованием и динамическим полиморфизмом стоит как можно реже, вместо них лучше использовать агрегацию и compile-time полиморфизм(шаблоны).
1
|
||
|
What a waste!
1612 / 1304 / 180
Регистрация: 21.04.2012
Сообщений: 2,735
|
|
| 26.04.2012, 14:02 | |
|
Да, вероятно от ТС так же ждут ещё и использования виртуального наследования.
0
|
|
| 26.04.2012, 14:02 | |
|
Определите что представляет из себя четырехугольник: ромб, прямоугольник, квадрат, трапеция Объявить систему классов: Точка, Прямоугольник, Квадрат, Ромб, Трапеция, Треугольник, Четырехугольник Записать программу, которая по выбранному названию фигуры (тре- угольник, квадрат, ромб, прямоугольник и т Описать базовый класс: линия, параллелограмм, ромб Уместиться ли целиком прямоугольник в параллелограмм Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат»
Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
|
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
|