Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Удалить объект


Автор: GRON 18.1.2004, 20:26
Ребята, тут такая проблема. sad.gif sad.gif
Имеется связанный список - каждый объект имеет указатель на следующий и имя. Конструктор выделяет память для имени динамически и добавляет объект в конец списка. Деструктор эту память возвращает куче и удаляет объект из списка.
Так вот - задача такова: нужно удалить объект с заданным именем до его естественной смерти, т.е. до вызова деструктора (допустим по команде пользователя до завершения программы), при этом нужно снести его имя и удалить из списка. Проблема насколько я понимаю будет такая - деструктор после такой операции не найдет в списке объекта и память для него тоже не найдет... Дальше за программу я не ручаюсь... smile.gif
Как решить?
Если что-то объяснил непонятно - со мной часто такое бывает wink.gif - напишите, поясню.
Всем заранее спасибо.
С уважением, Алексей.

Автор: 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
Хорошая мысля! notify.gif
Что ж спасибо, попробую применить этот принцип.

Автор: Ars 19.1.2004, 11:02
Цитата
Имеется связанный список - каждый объект имеет указатель на следующий и имя.

Цитата
Насколько я понял, твое предложение - работать не с объектами , а с указателями на них, да?

Ихмо, в вопросе был ответ smile.gif

Автор: Guest 19.1.2004, 15:27
Ars
Это точно. Я заглючил. Потом уже думаю, че это со мной - ведь связанный список как раз работает не с объектами а с указателями? Торможу, бывает. smile.gif

Автор: Guest 19.1.2004, 15:27
Это был я.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)