On 18/08/12 20:46, K. Frank wrote: > [...] > This does raise one c++ / Qt question for me: When an automatic > variable goes out of scope, its destructor is called (and, at some > point, the stack is popped, but not by the destructor nor by any > explicit user code). When a heap variable is deleted, its destructor > is called, and the equivalent of free is called. The point is delete > is not called (in correct code) on automatic variables. > > How can the Qt parent-child system work with both automatic and > heap variables as children? When a child object registers itself > with its parent (e.g., by being passed a pointer to its parent in its > constructor), neither the child object nor the parent knows whether > the child is an automatic or heap variable (and, using portable > standard c++, can't know). So how can the parent know (when the > parent is destroyed) whether to call the child's destructor directly or > to call delete on the child?
Qt doesn't detect this. Your application will crash. So don't do it :-) On a similar note, don't delete QObject instances manually. Call their deleteLater() member function instead. _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest