Если честно по данному вопросу толкового и полного ответа не нашел (может плохо искал). Как я понял при таком раскладе:
QObject* parent = new QObject;
QObject* child = new QObject(parent);
Система удалит автоматически parent и так как child содержит указатель на parent он удалит child тоже автоматом.
Но в Шлее вчера вычитал вот такое (тема про потоки):
void run()
{
for (int i = 0; i <= 100; ++i) {
usleep(100000);
ProgressEvent* pe = new ProgressEvent;
pe->setValue(i);
QApplication::postEvent(m_pobjReceiver, pe);
}
}
Он пишет что объект pe будет удален автоматически. Объясните пожалуйста, я просто запутался, что и когда удаляется автоматически без вызова оператора delete, а что нужно удалять руками? Просто не привычно как то полагаться что Qt за тебя все правильно "почистит".