| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Удалить объект |
| Автор: GRON 18.1.2004, 20:26 |
| Ребята, тут такая проблема. Имеется связанный список - каждый объект имеет указатель на следующий и имя. Конструктор выделяет память для имени динамически и добавляет объект в конец списка. Деструктор эту память возвращает куче и удаляет объект из списка. Так вот - задача такова: нужно удалить объект с заданным именем до его естественной смерти, т.е. до вызова деструктора (допустим по команде пользователя до завершения программы), при этом нужно снести его имя и удалить из списка. Проблема насколько я понимаю будет такая - деструктор после такой операции не найдет в списке объекта и память для него тоже не найдет... Дальше за программу я не ручаюсь... Как решить? Если что-то объяснил непонятно - со мной часто такое бывает Всем заранее спасибо. С уважением, Алексей. |
| Автор: shedon 18.1.2004, 20:43 |
| //Допустим создаёшь указатель на объект: MyObject *m_oObject = NULL; // Создаёшь сам объект if(NULL != m_oObject ) m_oObject = new MyObject ; // Удаляем обьект, тот же код в деструктор if(NULL != m_oObject ) { delete m_oObject ; m_oObject = NULL; } |
| Автор: GRON 18.1.2004, 21:30 |
| shedon Насколько я понял, твое предложение - работать не с объектами , а с указателями на них, да? |
| Автор: shedon 18.1.2004, 21:40 |
| Да |
| Автор: GRON 18.1.2004, 21:46 |
| Хорошая мысля! Что ж спасибо, попробую применить этот принцип. |
| Автор: Ars 19.1.2004, 11:02 | ||||
Ихмо, в вопросе был ответ |
| Автор: Guest 19.1.2004, 15:27 |
| Ars Это точно. Я заглючил. Потом уже думаю, че это со мной - ведь связанный список как раз работает не с объектами а с указателями? Торможу, бывает. |
| Автор: Guest 19.1.2004, 15:27 |
| Это был я. |