new/delete on QObjects (QT4.1)

Alles rund um die Programmierung mit Qt
Antworten
QtBerserker
Beiträge: 71
Registriert: 15. Mai 2006 09:07

new/delete on QObjects (QT4.1)

Beitrag 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:
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
QtBerserker
Beiträge: 71
Registriert: 15. Mai 2006 09:07

Beitrag 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 ...
Antworten