Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: [C++] удаление объектом самим себя через другой объект
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
ukpyr
есть класс (parent) - коллекция объектов другого класса (child).
возникла такая ситуация - из метода объекта-child при определенном условии вызывается метод объекта-колекции, в котором при определенном условии нужно произвести delete этого потомка (до завершения выполнения его метода).
эта ситуация разрулится нормально ?
AHTOXA
Ну давайте рассуждать.
Дитятя имеет метод
Код
child.suicide();

в него передаётся неявный параметр this, указывающий на экземпляр дитяти. То есть, вызов реально выглядит как-то так:
Код
child_t_suicide(childptr);

Из этого метода дитятя вызывает метод родителя
Код
parent.delete_child(childptr);

Если parent - это поле класса child_t, то это будет так: this->parent.delete_child(this).
Пока никакого криминала.
После родитель прибивает дитятю:
Код
  delete(childptr);
   return;

Короче, если после уничтожения дитяти нет обращений к его полям/методам класса, то всё должно быть нормально.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.