|
45 / 2 / 0
Регистрация: 24.05.2018
Сообщений: 30
|
||||||||||||
Хранение в контейнере указателей на объекты класса24.04.2019, 09:18. Показов 4534. Ответов 3
Здравствуйте, очень прошу помочь разобраться:
У меня есть учебная задача:
У меня была мысль сделать класс Компания, через этот класс взаимодействовать с пользователем: -добавлять новых сотрудников, и их подчиненных -удалять сотрудников -запрашивать список всех подчиненных конкретного сотрудника, -запрашивать зарплату конкретного сотрудника и его подчиненных или зарплату всех сотрудников компании. И сделать 3 класса сотрудников: Employee (базовый), Manager, Sales В классе Компания я хотела хранить (в set) созданные объекты сотрудников, а в объектах сотрудников - хранить указатели или итераторы на его подчиненных. Попыталась сделать через shared_ptr (чтобы можно было хранить всех сотрудников в одном контейнере), и добавляя эти объекты - сохранять итератор, который возвращает метод insert и передавать этот итератор "начальнику", но так программа даже не компилируется. Потом я создала 3 дека (для Employee, Manager, Sales) в классе Компания, туда при добавлении сотрудника вставляла созданный объект, а "начальнику" добавляла указатель на этот объект в деке, программа стала компилироваться, но не работает(( У меня есть код, но он совсем пока некрасивый, пожалуйста, не ругайтесь, сама знаю что он ужасен Классы сотрудников будут внутри класса компании, поэтому поля public
или надо полностью менять подход? Тогда, пожалуйста намекните на что обратить внимание.
0
|
||||||||||||
| 24.04.2019, 09:18 | |
|
Ответы с готовыми решениями:
3
Вектор указателей на объекты класса Динамический массив указателей на объекты класса Массивы указателей на объекты как данные класса |
|
Комп_Оратор)
|
|||
| 24.04.2019, 10:05 | |||
Сообщение было отмечено Nolwelin как решение
Решение
Nolwelin, я не смогу ответить достаточно объёмно так как у Вас довольно обширная задача с использованием паттернов. Тут просматривается фасад, стратегия, фабрика и возможно другие. Я попробую ответить на вот этот момент:
Но даже если хранилищем избрать список, то придётся повозиться с обеспечением доступа и обеспечением идиомы владения. Посмотрите из любопытства в моём блоге 1,2,3,4,5... Простой путь - ![]() Добавлено через 5 минут ps каждый сотрудник (не только начальник) содержит указатель на список подчинённых. У работников (листьев) он нулевой.
1
|
|||
|
45 / 2 / 0
Регистрация: 24.05.2018
Сообщений: 30
|
|
| 25.04.2019, 10:33 [ТС] | |
|
IGPIGP, спасибо, навели на мысль
программа работает
0
|
|
|
Комп_Оратор)
|
||
| 25.04.2019, 10:52 | ||
1
|
||
| 25.04.2019, 10:52 | |
|
Помогаю со студенческими работами здесь
4
Создать массив указателей на объекты класса, описывающего насекомых Можно ли динамически выделить память под массив указателей, на объекты класса? Почему в сортировке указателей на объекты в вызове функции используются адреса объектов, а не указателей? Хранение сложных классов в контейнере Хранение в контейнере обьектов разных классов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|