Seite 1 von 1

new/delete on QObjects (QT4.1)

Verfasst: 22. Mai 2006 13:50
von QtBerserker
Ich dachte, ich hätte das mit den new/delete bei QT gefressen, aber anscheinend nicht oder die Trolls haben beim QDesigner gepennt:

Code: Alles auswählen

QDesigner::~QDesigner()
{
    if (m_workbench)
        delete m_workbench;
    if (m_server)
        delete m_server;
    if (m_client)
        delete m_client;
}
Ich dachte, alle von QObject abgeleiteten Objecte sind in der Verantwortung des Garbage Collectors (GC) und benötigen daher kein expl. delete?

Code: Alles auswählen

class QDesigner: public QApplication
{
    Q_OBJECT
public:
    ....
Wer hat nun recht?

BTW, in der Forensuche fehlt: nur im Titel suchen- oder ich bin blind :roll:

Verfasst: 22. Mai 2006 14:03
von Christian81
Warum dürfen sie es nicht trotzdem löschen?

Und die Objekte müssen nicht nur von QObject abgeleitet sein, sondern sie müssen einen QObject-Parent haben der korrekt gelöscht wird.

Verfasst: 24. Mai 2006 13:58
von QtBerserker
Christian81 hat geschrieben:Warum dürfen sie es nicht trotzdem löschen?

Und die Objekte müssen nicht nur von QObject abgeleitet sein, sondern sie müssen einen QObject-Parent haben der korrekt gelöscht wird.
Nun haben ja manche QObjects als parent einen Null Pointer, was ist damit? Nach einem flüchtigen und partiellen Blick in die Sourcen hat Qt intern eine Hasmap mit den verwalteten Adressen ... Dennoch taucht in manchen Bsp. ein delete auf ...