在我的项目中,我创建QObject
实例并赋予它们父子关系。我还想跟踪一些带有QSharedPointer
实例的对象。
当一个对象被delete childObject;
或删除时delete parentObject;
,我希望QSharedPointer
实例true
在调用isNull()
.
但是,在删除任何QSharedPointer
指向的对象后,我的程序就会崩溃。
这是我的代码:
QObject *child = new QObject();
QSharedPointer<QObject> ptr(child);
delete child;
仅此一项就使我的程序崩溃。我阅读了文档QSharedPointer
并指出A QSharedPointer object can be created from a normal pointer
,所以我有点困惑为什么QSharedPointer
不能处理指向被删除的对象。
QPointer
没有这个问题,我什至可以调用isNull()
,但是我需要的原因QSharedPointer
是因为将创建一些子对象并且没有给出父对象,此时我希望在所有相关QSharedPointers
超出范围时删除子对象.