Destruktor wird nicht aufgerufen

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
katsumoto
Beiträge: 3
Registriert: 8. Februar 2007 15:00
Wohnort: remscheid
Kontaktdaten:

Destruktor wird nicht aufgerufen

Beitrag von katsumoto » 26. August 2010 16:14

Hallo zusammen,

ich habe ein Programm, in dem diverse Einstellungen beim Beenden gespeichert werden sollen. Dies soll im Destruktor des jeweiligen Fensters geschehen. Der explizit definierte Destruktor wird aber nicht aufgerufen.
Deklaration:

Code: Alles auswählen

class GMainWindowSimple : public QMainWindow, private Ui::MainWindow
{
    Q_OBJECT

public:
    GMainWindowSimple(QWidget *parent = 0);
    ~GMainWindowSimple();

private:
    QSplitter *s, *t;
    GTreeNavigator *nav;
    QScrollArea *scroll_OV, *scroll_D;
    ...usw
};
Implementierung:

Code: Alles auswählen

GMainWindowSimple::GMainWindowSimple(QWidget *parent) : QMainWindow(parent)
{
    setupUi(this);
    setupActions();

    s = new QSplitter;
    t = new QSplitter;
    ...usw

    readSettings();
qDebug() << "Konstruktor";
}
Der Konstruktor wird aufgerufen, Die Einstellungen werden gesetzt. qDebug gibt "Konstruktor" aus.

Code: Alles auswählen

GMainWindowSimple::~GMainWindowSimple()
{
    writeSettings();
qDebug() << "Destruktor";

   ...usw
}

Die Einstellungen werden nicht geschrieben. qDebug gibt nicht "Destruktor" aus.

Warum wird der Destruktor nicht aufgerufen? In der Klassendeklaration ist Q_OBJECT definiert.

Christian81
Beiträge: 7313
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 » 26. August 2010 17:26

Und was hat das in 'Das Forum' zu suchen??

/edit: Und jetzt zur Antwort - wo rufst Du delete auf?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung

Antworten