2012-04-03 20 views

Antwort

5

1) Initialisieren Ihre Objektzeiger

2) Überprüfen Sie für NULL in Ihrer if Anweisung

QObject *obj = NULL; 
... 
if (obj != NULL) { 
    ; 
} else { 
    obj = new QObject(); 
} 
auf NULL
+0

Eigentlich NULL ist ein C-ism. Für einen modernen Compiler verwenden Sie stattdessen nullptr. –

+0

Ich denke, Qt verworfen NULL. Und bitten Sie, statt dessen 0 zu verwenden. Aber ** ISO verbietet die Initialisierung von Mitgliedern ** wie ein Fehler, den ich bekomme, wenn ich ** QObject * obj = 0; ** – Dewsworld

+2

verwende Wenn 'obj' eine Membervariable ist, sollte sie auf 0/NULL/nullptr initialisiert werden Wählen Sie) innerhalb des Konstruktors Ihrer Klasse, vorzugsweise in der Initialisierungsliste. – Chris

0
QObject *obj = 0; 

// ... 

if (!obj) obj = new QObject(); 

Hinweis: Keine Garantie obj ist kein dangling pointer.