|
45 / 2 / 0
Регистрация: 24.05.2018
Сообщений: 30
|
||||||||||||
Хранение в контейнере указателей на объекты класса24.04.2019, 09:18. Показов 4572. Ответов 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
Создать массив указателей на объекты класса, описывающего насекомых Можно ли динамически выделить память под массив указателей, на объекты класса? Почему в сортировке указателей на объекты в вызове функции используются адреса объектов, а не указателей? Хранение сложных классов в контейнере Хранение в контейнере обьектов разных классов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|