|
9 / 7 / 2
Регистрация: 02.12.2021
Сообщений: 49
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ООП реализация меню с классом его пунктов. Вызов функций посредством метода класса пункта меню12.04.2022, 19:26. Показов 1266. Ответов 4
Проходим ООП. В задании, предшествовавшем этому, необходимо было скопировать пример преподавателя классов Пункта меню и Меню. Дальше будет много кода, извиняюсь за это. Вот как они выглядят:
Пункт меню cpp: Кликните здесь для просмотра всего текста
Само меню cpp: Кликните здесь для просмотра всего текста
И вот так выглядит main для демонстрации работы полученных классов: Кликните здесь для просмотра всего текста
Функции f1, squaring и f3 это просто заглушки для демонстрации. Что здесь важно: вызов этих функции реализован с помощью метода run() класса MenuItem. С ним в дальнейшем и будет проблема. В настоящем задании, необходимо было написать абстрактный класс User и производные от него классы Employee и Client Вот они: User: Кликните здесь для просмотра всего текста
Employee: Кликните здесь для просмотра всего текста
Employee cpp
Client: Кликните здесь для просмотра всего текста
Client cpp:
А теперь, самое главное. По заданию необходимо реализовать тестовую логику классов в файле main, чтобы оценить работоспособность приложени и добавить эту функциональность в меню, в т.ч. необходимо реализовать пункты добавления в память клиентов и работников. Вот здесь и начинаются проблемы, я не понимаю, как это реализовать так, чтобы можно было привязать к функции run() класса MenuItem. В последний раз я пробовал менять typedef функцию, менял возвращаемые значения и принимаемые аргументы. К сожалению, этот код утрачен, но я в любом случае думаю, что это неправильный подход. Я совершенно потерялся в решении. Наверняка же должен быть какой-то способ не создавать кучу функций для отдельного заполнения массива/вектора необходимыми объектами (Отдельно Employee и Client). Вот например в коде есть строчка virtual void addUser(User& person) = 0;, я добавил её туда после того как где-то прочитал, что таким образом можно затем переопределить эту функцию в каждом классе для заполнения массива объектами соответствующего типа. Верно ли это? В любом случае после этого мысль не идёт, я во всём запутался и не понимаю, в каком направлении двигаться дальше.Во-первых, где хранить? В динамическом массиве через указатель или с помощью вектора? Важно ли это вообще в данной ситуации? Во-вторых, как правильно (или хотя бы ближе всего к "правильному") реализовать нужные функции? Можно ли создать нужный метод в классе-родителе в данной ситуации? В поисках решения наткнулся на понятие "интерфейс", но и здесь я спотыкаюсь. Интерфейс же состоит только из виртуальных функции? Тогда нужно ли создавать сначала интерфейс, затем от него наследовать User и уже потом наследников Client и Employee? Однако это для меня не снимет вопрос технической реализации. В-третьих, как изменятся функции в классе MenuItem? Будет куча перегрузок? Или получится подвязать всё под существующий метод, который возвращает метод bool? Для последнего варианта вообще не вижу возможностей. Прошу помощи в том, чтобы с этим разобраться. Просто я даже не могу понять, может среди найденной мной информации есть правильная, но мне не хватает знаний и навыков, чтобы их увидеть.
0
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 12.04.2022, 19:26 | |
|
Ответы с готовыми решениями:
4
Выделение главного пункта меню и его дочерных пунктов-элементов
Отключить быстрый вызов пунктов меню |
|
2394 / 1923 / 763
Регистрация: 27.07.2012
Сообщений: 5,568
|
|||||||
| 12.04.2022, 21:40 | |||||||
Сообщение было отмечено Eltan как решение
Решение
1
|
|||||||
|
9 / 7 / 2
Регистрация: 02.12.2021
Сообщений: 49
|
|
| 12.04.2022, 22:08 [ТС] | |
|
Спасибо за ответ!
К сожалению, по заданию реализация должна быть такая. Но чисто теоретически, как может пункт меню быть реализован в ООП? Можете направить на какие-то примеры реализации?
0
|
|
|
2394 / 1923 / 763
Регистрация: 27.07.2012
Сообщений: 5,568
|
||
| 12.04.2022, 22:35 | ||
std::function<>. Тогда можно передавать и простые указатели на функции, и функциональные объекты, и лямбды.
0
|
||
|
9 / 7 / 2
Регистрация: 02.12.2021
Сообщений: 49
|
|
| 14.04.2022, 10:42 [ТС] | |
|
Спасибо, почитаю об этом!
0
|
|
| 14.04.2022, 10:42 | |
|
Помогаю со студенческими работами здесь
5
Реализация каждого отдельного пункта меню с условием Построение графиков функций посредством меню Вызов метода производного класса (ООП, наследование, списки инициализации) MainMenu: поменять цвет и ширину полосы меню и пунктов меню Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|