0 / 0 / 1
Регистрация: 28.03.2014
Сообщений: 36
|
|||||||||||||||||||||||||||||||
1 | |||||||||||||||||||||||||||||||
Очистка динамической памяти в структуре14.07.2014, 23:52. Показов 2665. Ответов 6
Метки нет (Все метки)
И снова здравствуйте. Столкнулся с проблемой. Есть задача - написать программу "Телефонный справочник" на основе класса Tree (бинарное дерево), реализовать там всякие функции, не суть важно какие. Класс Tree есть, описывать его не буду, вопрос не в нем. Есть структура, которая содержит данные абонента, и которая является узлом бинарного дерева:
А есть еще такая замечательная функция Del (Subscriber *), которая должна, соответственно, абонента удалять из базы. Весь код приводить не буду, опишу его алгоритм:
Попробовал аналогичным путем прописать деструктор в структуре:
PS кому нужно выложил весь код в архиве, он там поделен на 4 файла. Из меню реализованы пока только 2 функции - добавление и удаление. Ну и 3 - я - вывод списка на экран.
0
|
14.07.2014, 23:52 | |
Ответы с готовыми решениями:
6
Очистка динамической памяти Выделение и очистка динамической памяти Очистка динамической памяти очереди Обращение к динамической структуре через массив указателей |
Неэпический
|
|
14.07.2014, 23:55 | 2 |
Реализуйте конструктор, конструктор копий, оператор присваивания и деструктор (семантику перемещения при желании).
Ну еще как вариант умные указатели использовать. А еще лучше воспользуйтесь std::string для хранения строк, а не голыми указателями.
0
|
55 / 48 / 13
Регистрация: 31.10.2013
Сообщений: 166
|
|||||||||||
15.07.2014, 16:49 | 5 | ||||||||||
Если у тебя есть готовый класс дерева, то он у тебя наверное как контейнер сделан, если нет - плохо. Просто суть вот в чем, если у тебя класс поддерживает контейнеры, то создаешь свой класс вместо структуры:
А вот в дереве у тебя должно быть:
0
|
0 / 0 / 1
Регистрация: 28.03.2014
Сообщений: 36
|
|||||||||||||||||||||
16.07.2014, 00:23 [ТС] | 6 | ||||||||||||||||||||
Вообще он есть в архиве, но если нужно могу и здесь. Просто его там много. Итак:
Tree.h: Кликните здесь для просмотра всего текста
Func.h Кликните здесь для просмотра всего текста
Tree.cpp Кликните здесь для просмотра всего текста
UseTree.cpp Кликните здесь для просмотра всего текста
Добавлено через 10 минут Просто материал проходили в таком формате - структура это узел бинарного дерева и класс Tree - определяет методы управления этим деревом. И на основе этой конструкции нужно забацать справочник. У меня, в принципе сейчас задача не стоит шаблонный класс описать, нужно сделать под определенный тип - Subscriber. Кроме того что такое virtual я пока понятия не имею :/ Если бы создал поля структуры не в куче, а в стэке, что собственно я могу сделать и сейчас, то и вопросов не было. Но вот захотелось выделить память динамически и теперь уже из принципа хочется понять что не так. Добавлено через 2 часа 52 минуты И еще, люди, подскажите как это всё добро сохранить в файл? Как там сохранить одну строку, я вроде бы понимаю, но как мне сохранить все дерево с сохранением его структуры и данных, тоже уперся в стену в данном вопросе :/
0
|
16.07.2014, 07:53 | 7 |
ФИО всегда умещается в 9 символов?
Выделяй память под поля Subscriber в конструкторе, раз ты освобождаешь её в деструкторе.
0
|
16.07.2014, 07:53 | |
16.07.2014, 07:53 | |
Помогаю со студенческими работами здесь
7
Очистка динамической памяти. Очистка динамической памяти Стек на динамической структуре данных (не массивы) Как я могу проверить значение следующего элемента в динамической структуре? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |