|
0 / 0 / 0
Регистрация: 26.04.2019
Сообщений: 3
|
|
Наследование, классы "сумки" и "обувь"26.04.2019, 11:03. Показов 8338. Ответов 29
Метки нет (Все метки)
В магазине продаются сумки и обувь. Все товары имеют след характеристики: название, цена, количество, цвет и материал. Сумки дополнительно характеризуются габаритами (длина, ширина, высота) и количеством отделений; обувь - минимальный и максимальный размер. Описать соответствующие классы, для которых возможны ввод, вывод, и редактирование информации о товаре
0
|
|
| 26.04.2019, 11:03 | |
|
Ответы с готовыми решениями:
29
Создать абстрактный класс Footwear (Обувь), включающий базовые характеристики Обувь. Спроектируйте абстрактный класс Tovar и классы–потомки: Obuv (обувь), Odejda (одежда), Posuda (посуда) Классы. Шаблоны. Создать шаблон, наследование шаблона с параметром, наследование от параметра |
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 26.04.2019, 18:14 | |
|
eva2326,
Я имел ввиду, что все не так однозначно Вот у автора в задаче сказано, что нужно иметь возможность добавлять/печатать/редактировать информацию о товаре. Мне честно говоря не очень понятно каким образом в данном случае хранение данных в виде одной строки будет проще чем каждому по классу и наследование. А по поводу БД которую вы упомянули: Например с тем же ORM-ом вариант "все данные в одной строке" не подойдёт. К тому же в программе может понадобится например сортировать товары по цене на выбор пользователя уже после того как данные были взяты из БД. Достать эту цену из текста будет труднее чем если бы она была записана в соответствующее поле
1
|
|
|
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
|
||||||
| 26.04.2019, 19:45 | ||||||
|
Вас никто не заставляет держать все данные в виде одной строки. одного единственного класса "предметов учета". Зачем здесь вообще нужно наследование? Зачем для такой задачи вообще плодить множество классов? Один единственный класс item покрывает всю область применения.Добавлено через 2 минуты
0
|
||||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 26.04.2019, 20:22 | ||
|
eva2326,
"в виде одной строки" взял из вашего кода (поле m_description). других выводимых данных о товаре которые указаны в задаче у вас в коде нет Добавлено через 4 минуты
Если сделать общий item, то придётся там хранить все свойства всех товаров. В итоге некоторые объекты будут занимать лишнюю память, которая им вовсе не нужна. Да и не логично это. Пользуемся объектом который представляет собой молоток, но почему то этот объект в то же время обладает полем размер бензобака. Логично, да?
2
|
||
|
Комп_Оратор)
|
||||
| 26.04.2019, 20:49 | ||||
|
eva2326, тот примитив который вы предлагаете, сводится к артикулярному номеру и описанию eva2326, если бы они уже проходили шаблонные классы то можно было бы предположить решение и без наследования. Но тогда вероятно вопрос бы выглядел иначе. Тут от ТС многое зависит, конечно, но у меня нет оснований думать, что он не аккуратен.
1
|
||||
|
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
|
||||||||||||||
| 27.04.2019, 14:44 | ||||||||||||||
|
инициализации любого произвольного товара. Я предполагала, что поняв идею кастомизации, вы легко сможете сделать заполнение любой информации, любых полей, любых классов. Я же не думала, что вас за ручку водить нужно: https://rextester.com/CDXQIG6985
Товар - это всего лишь единица учета складского учета. У товара может быть "цена", "количество", "дата прихода на склад", "номенклатурный номер", который связывает товар с табличной "наименований" и "описаний" товара. Может быть ещё "категория" (одежда, продукты, etc), если товаров много и хочется сделать удобную фильтрацию для различных выборок. И в общем то все. Если бы вы когда нибудь имели дело с товаро-учетом, вы бы знали, что например, сумки могут делиться на "мало-габаритные" или "средне-габаритные", но у вас никогда не возникло бы потребности задавать конкретные цифры для их габаритов. То есть "габаритность" сумки - это часть её "описания", и не более того. Выделять персонально для сумок отдельный класс, который будет хранить три отдельные переменные для точного обозначения габаритов - это бессмысленно. Просто представьте себе, что вы - владелец магазина. И вы ведете тетрадь "учета товаров". Она у вас будет разлинована по нескольким столбикам, как то так:
А не вводить сколько там сантиметров в длину/высоту занимает конкретная сумка, или каков процент сахара в конкретной газировке. Только этим: описанием/наименованием/артикулом разные товары и различаются. Добавлено через 54 секунды Я знала!) Я в вас верила))
0
|
||||||||||||||
|
Комп_Оратор)
|
|||
| 27.04.2019, 15:12 | |||
|
Но Поля могут быть и булевыми. То есть, сумки бывают мужскими, женскими ( и унисекс ). А вот бельевые прищепки и зубочистки не обладают такими качествами, в обычных для европейцев контекстах. Это значит, что базовый интерфейс может расширяться. И подкатегории могут объявлять свои - более частные интерфейсы в расширение к уже унаследованным. Вообще, формализация внешних систем (моделирование) - проецирование фрагментов реального мира в область абстракций, это не тривиальная область деятельности. Многие математики не понимают, того простого факта, что отсутствие математической теории моделирования, следует из отсутствия математической теории искусственного интеллекта. Сложность моделей описываемых при помощи использования и комбинации распространённых патернов не высока, но достаточно полезна. Наследование - один из инструментов. И вряд ли стоит с этим спорить. А то, что студентам задают потрогать молоток, а не бабахнуть им по чему ни попадя, вполне разумно. Обучение, это тоже объектно анализируемая ситуация, кстати.
0
|
|||
|
Just Do It!
|
||
| 27.04.2019, 20:32 | ||
|
но людям плевать и они снова и снова юзают абстракцию, считая свое восприятие за реальный мир. По теме наследования в задаче магазина: Товар может быть очень много разных типов. Это уже один раз нужно постараться кодеру, чтобы на каждый тип завести класс. А если регулярно появляются новые типы товара, то как быть: магазину нужно иметь штатного программиста? Выход(если очень коротко): Вынести проверку юзерских типов за пределы компилятора в реалтайм.
0
|
||
|
Комп_Оратор)
|
||||||
| 27.04.2019, 21:54 | ||||||
|
Вот почему, я считаю, что две группы имеющие общие свойства и интерфейс имеют также и специфичные для каждой группы свойства. И эти свойства по разному отражаются на реализацию работы общего интерфейса. То есть, обувь разных размеров (в пределах артикула, модели и пр.) имеет как правило разную цену. Для отражения такого поведения, даже схематичного - в пределах лабораторки, нужно попотеть. Но это выполнимо и полезно для практики. Думаю, наследование вполне уместно.
1
|
||||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 29.04.2019, 12:00 | |
|
eva2326,
Я понимаю о чем вы говорите ![]() Просто помоему вы как то однозначно выражаете свою позицию (типа это всегда так и должно быть)... Где то ваш вариант прокатит, где то нет... Именно из этих соображений я и отправил это сообщение Наследование, классы "сумки" и "обувь"
0
|
|
|
Комп_Оратор)
|
|||
| 29.04.2019, 13:40 | |||
0
|
|||
| 29.04.2019, 13:40 | |
|
Наследование, базовые классы и производные классы
Классы, наследование Классы и наследование Классы, наследование Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|