Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > 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 |
Это был я. |