Wenn ich ein Objekt mit new allokiere, weil ich dieses Objekt (mein Fenster) länger brauche, als die Laufzeit der Methode, in der es gemacht wird, wie kann ich das Objekt dann mit delete löschen, wenn ich es in der neuen Klasse löschen will, in der es ja am längsten gebraucht wird. Sprich, so lange er Methoden in der neuen Klasse ausführt, so lange braucht er das Objekt und erst dann kann er es löschen. In der neuen Klasse kennt er das Objekt aber ja garnicht, weswegen ich es mit delete() nicht ansprechen kann.
In AddIdentifierFormImpl kann ich an der Stelle, in der entry gelöscht werden dürfte, dieses nicht ansprechen, auch nicht mit
Falls man das überhaupt dürfte.
Code:
void KonfiguratorMainWindowImpl::slot_newEntry()
{
entry = new AddIdentifierFormImpl(&giver);
entry->startIdEntryDialog();
// delete entry; // geht nicht, da Fenster dann geschlossen wird & er in startIdEntryDialog() aus AddIdentifierFormImpl noch arbeitet
}
In AddIdentifierFormImpl kann ich an der Stelle, in der entry gelöscht werden dürfte, dieses nicht ansprechen, auch nicht mit
Code:
delete KonfiguratorMainWindowImpl::entry;
Falls man das überhaupt dürfte.