С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
KyKi
4 / 4 / 0
Регистрация: 12.09.2013
Сообщений: 134
#1

Как можно реализовать наследие между параллелограммом и параллелепипедом? - C++

18.03.2014, 20:48. Просмотров 623. Ответов 11
Метки нет (Все метки)

Подскажите,пожалуйста,как можно реализовать наследие между параллелограммом и параллелепипедом??
Задание:
Описать иерархию классов: прямая (координаты двух точек), параллелограмм наследует прямую, являющуюся его диагональю, параллелепипед наследует параллелограмм, являющийся его гранью.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2014, 20:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как можно реализовать наследие между параллелограммом и параллелепипедом? (C++):

Как можно реализовать ? - C++
У меня есть код на С++ для ввода и вывода комплексных чисел #include <cstdlib> #include <iostream> #include <math.h> using namespace...

Как это можно реализовать? - C++
Строка состоит из слов, разделенных ровно одним пробелом, пробелов перед первым и после последнего слова нет. Получить новую строку, в...

Как это можно реализовать - C++
Напишите программу, предлагающую пользователю ввести три целых числа, а затем вывести их в порядке возрастания, разделяя запятыми....

Игра в кости: реализовать мини-казино; реализовать возможность игры 2 человек между собой - C++
Уважаемые форумчане! Подскажите, пож-та, где можно посмотреть программу игры в кости, но не человека и компьютера, а двух человек...

Как можно реализовать отрицание множества на с++? - C++
Как можно реализовать отрицание множества на с++? .Имеется два множества A и В, как сделать отрицание?

Как можно реализовать такую структуру? - C++
Реализовать структуру данных, которая имеет все те же операции, что массив длины n, а именно • начать работу; • положить в i-ю ячейку...

11
dimcoder
Полярный
466 / 439 / 68
Регистрация: 11.09.2011
Сообщений: 1,138
18.03.2014, 20:52 #2
Параллелепипед - это шесть параллелограммов. Если подумать, то хватит информации о двух параллелограммах (а-ля координат восьми точек) для воспроизведения параллелепипеда в пространстве.
0
John Prick
824 / 757 / 152
Регистрация: 27.07.2012
Сообщений: 2,156
Завершенные тесты: 3
18.03.2014, 23:37 #3
Кто придумывает такие задания? Если один класс B наследует от класса А, то для них справедливо будет сказать "В является А". Параллелепипед является параллелограммом? А параллелограмм - пряомй? Нет. Поэтому на вопрос
Цитата Сообщение от KyKi Посмотреть сообщение
как можно реализовать наследие между параллелограммом и параллелепипедом?
Ответ - никак.

Не по теме:

Кирпич наследует от глины, дом наследует от кирпича...

2
KyKi
4 / 4 / 0
Регистрация: 12.09.2013
Сообщений: 134
18.03.2014, 23:49  [ТС] #4
John Prick, к сожалению не я придумываю задания а если есть задача должно быть и какое-то решение,преподу не объяснишь,что он некорректно поставил задание
0
John Prick
18.03.2014, 23:54
  #5

Не по теме:

KyKi, как знать. Если препод адекватный, то поймёт. Хотя, если бы он был адекватным, не давал бы такие задания...
К тому же подобные задания, мягко говоря, мешают правильному пониманию в общем-то непростой темы наследования.

0
zener
22 / 9 / 1
Регистрация: 16.10.2010
Сообщений: 115
19.03.2014, 00:08 #6
Наверное имелось ввиду не отношение Is-a, а отношение Has-a
0
John Prick
824 / 757 / 152
Регистрация: 27.07.2012
Сообщений: 2,156
Завершенные тесты: 3
19.03.2014, 00:22 #7
zener, что подразумеваете под has-a ?
0
DrOffset
7377 / 4454 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
19.03.2014, 00:30 #8
zener, Тогда это не наследование. Это агрегирование.
Есть правда еще приватное наследование, которое реализует has-a. Но реализация параллелепипеда потребует, как уже сказали, 8 точек. Наследоваться от одного класса дважды (без неуместных извращений) все равно не получится.
В общем логики в задании - ноль. Интересно посмотреть "каноническое решение" от преподавателя.
1
zener
22 / 9 / 1
Регистрация: 16.10.2010
Сообщений: 115
19.03.2014, 17:11 #9
Is-a - отношение наследования (классификации)
Has-a - отношение принадлежности.
Как сказал DrOffset, это агрегирование.
Да, логики нет в постановке задачи.
Порой бывает, что не прав юный подаван, нежели сенсэй
Может не так поняли задачу?
0
KyKi
4 / 4 / 0
Регистрация: 12.09.2013
Сообщений: 134
19.03.2014, 19:48  [ТС] #10
Я написала текст задачи не полностью,возможно в нем и есть логика,если прочесть всю задачу,а она звучит так:
Описать иерархию классов: прямая (координаты двух точек), параллелограмм наследует прямую, являющуюся его диагональю, параллелепипед наследует параллелограмм, являющийся его гранью.
Реализовать методы: конструкторы классов без параметров, конструкторы классов с параметрами, функции вывода значений закрытых полей данных, функции доступа к закрытым данным, виртуальные функции вычисления какого-либо значения: для класса прямая возвращает ее длину, для класса параллелограмм возвращает его площадь, для класса параллелепипед призма возвращает его площадь поверхности.
Но сути это не меняет..все равно не понимаю наследственной связи между ними
0
dimcoder
Полярный
466 / 439 / 68
Регистрация: 11.09.2011
Сообщений: 1,138
19.03.2014, 20:27 #11
Цитата Сообщение от KyKi Посмотреть сообщение
параллелепипед наследует параллелограмм, являющийся его гранью.
Что бы вообразить в пространстве параллелепипед недостаточно одной грани (всего четыре точки, а надо восемь), поэтому просто через одну грань без второй все сделать - нереально.
Поэтому предлагаю план в пяти шагах:
1) Сделать иерархию криво и, скорее всего, как хочет препод. Унаследовать чертов параллелепипед через параллелограмм (получаем is-a и первую грань) и добавить как приватный член класса (has-a) тот же параллелограмм (вот и вторая грань). Получается черезодноместная реализация, но по условию.
2) Следующим шагом будет являться создание нормальной иерархии, полностью has-a, как мы себе это представляем, как есть в реальном мире.
3) Осталось показать преподу обе программы и объяснить свою точку зрения.
4) ...
5) PROFIT!!!!
0
KyKi
4 / 4 / 0
Регистрация: 12.09.2013
Сообщений: 134
19.03.2014, 20:35  [ТС] #12
DrOffset, я вам предоставлю потом решение преподавателя))
0
19.03.2014, 20:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2014, 20:35
Привет! Вот еще темы с ответами:

как можно реализовать это в коде? - C++
Здравствуйте. Если вам не трудно скажите как можно в коде реализовать это: Вариантов множество. Например, заводится массив с указателями...

Как можно реализовать отправку смс с компьютера? - C++
Как можно реализовать отправку смс с компьютера я знаю на дельфи можно через почту майл ру агента отправлять а в c++ как это можно...

Наследие классов С++ - C++
Помогите плз разобраться с выводом.Прога вроде написана правильно а выводит не то что надо(какой то бред) Задание: В родительском...

Как можно реализовать ввод данных в одну строку? - C++
Скажем у меня есть такой код for(int i=0; i<a; i++) { cin>>massive; } Мне надо сделать так, что бы после ввода каждого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.