|
0 / 0 / 0
Регистрация: 08.11.2008
Сообщений: 10
|
||||||||||||||||||||||||||
Проблема с деструктором08.11.2008, 22:51. Показов 1320. Ответов 7
Метки нет (Все метки)
Помогите реализовать алгоритм:
Пусть имеется класс сотрудников примерно следующего вида:
Т.е., например, хотим удалить Емелю, видим, что у Емели три непосредственных подчиненных: Олег, Игнат и Антон. Теперь вопрос, как обнаружит этих подчиненных деструктор? Я думал реализовать это так: в классе задаем еще одно поле - массив указателей (чтобы не ограничивать количество возможных подчиненных, массив должен быть динамическим)
Поэтому помогите, пожалуйста, с кодом конструктора
0
|
||||||||||||||||||||||||||
| 08.11.2008, 22:51 | |
|
Ответы с готовыми решениями:
7
Проблема с деструктором и ошибка vector
Ошибка с Деструктором |
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 08.11.2008, 23:27 | |
|
Тьфу.
В общем, ты создал сам себе задачу на ровном месте. Во-первых, почему при удалении начальника нужно удалять всех его подчиненных? Почему нельзя переподчинить их просто другому начальнику (новому) ? В жизни (а отражением которой и являются программные объекты) так и есть. Во-вторых, черт с ним, пусть по логике этой странной фирмы так и требуется. Тогда выход - связный список. Т.е. каждый сотрудник хранит список всех своих подчиненных. Тогда при удалении сотрудника сначала удаляешь всех его подчиненных, а затем - его самого, любимого. Деструкторы сотрудников, разумеется, идентичны - сначала удаляют всех подчиненных сотрудника, затем убивают самого сотрудника.
0
|
|
|
0 / 0 / 0
Регистрация: 08.11.2008
Сообщений: 10
|
||||
| 08.11.2008, 23:56 [ТС] | ||||
Я и хочу так сделать, а новый их начальник - это как раз начальник УДАЛЯЕМОГО сотрудника
а для этого и динамический массив указателей на подчиненных (мы же не знаем сколько человек сошлется на этого сотрудника как начальника) Собственно, мне надо узнать конкретный код строки, чтобы работал new, когда будем выделять память для массива подчиненных в очередной раз, когда кто-либо будет ссылаться на данный объект. И код деструктора, где переподчиняются объекты и delete массив указателей (память же после new надо высвобождать по хорошему счету)
0
|
||||
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
||
| 09.11.2008, 10:35 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 08.11.2008
Сообщений: 10
|
||||||||||||||||
| 09.11.2008, 13:07 [ТС] | ||||||||||||||||
|
Когда подчиненный ссылается на начальника,
А потом создаем в классе метод, где для любого сотрудника спокойно можем вывести поля всех сославшихся на него подчиненных, например:
0
|
||||||||||||||||
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
||||||
| 09.11.2008, 13:48 | ||||||
|
Могу. Приблизительно где-то так:
1
|
||||||
|
0 / 0 / 0
Регистрация: 08.11.2008
Сообщений: 10
|
||||||||||||
| 09.11.2008, 14:36 [ТС] | ||||||||||||
|
ок)) спасибо. а я тебе только что код проги в личку скинул, пока сообщение не видел. ты забей тогда на него. главное, синтаксис я увидел.
только с векторами еще не встречался, но как понял, это что-то типа массива? где begin() определяет [0] ячейку, а end() - это типа аналог strlen()?
0
|
||||||||||||
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 09.11.2008, 15:01 | |
|
Погляди в MSDN, что такое вектор. Ну, или в книге Николая Джосаттиса "C++ Стандартная библиотека". С 1998 года он обязательно входит в стандартную библиотеку С++ на всех компиляторах. Это - "встроенный" динамический массив.
begin() - итератор, указывающий на начало массива; end() - итератор, указывающий "тотчас за конец" массива. Итератор можешь в первом приближении рассматривать как указатель на элемент этого массива.
1
|
|
| 09.11.2008, 15:01 | |
|
Помогаю со студенческими работами здесь
8
Проблемы с деструктором Не работает с деструктором Ошибка с деструктором класса Объясните код с деструктором
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|