Ну давайте рассуждать.
Дитятя имеет метод
Код
child.suicide();
в него передаётся неявный параметр this, указывающий на экземпляр дитяти. То есть, вызов реально выглядит как-то так:
Код
child_t_suicide(childptr);
Из этого метода дитятя вызывает метод родителя
Код
parent.delete_child(childptr);
Если parent - это поле класса child_t, то это будет так: this->parent.delete_child(this).
Пока никакого криминала.
После родитель прибивает дитятю:
Код
delete(childptr);
return;
Короче, если после уничтожения дитяти нет обращений к его полям/методам класса, то всё должно быть нормально.
Если бы я знал, что такое электричество...