文章目录
-
- QPointer
- QSharedPointer
- QWeakPointer
- QScopedPointer
- QScopedArrayPointer
- 类型转换
-
- qSharedPointerCast
- qSharedPointerDynamicCast
- qSharedPointerConstCast
- qWeakPointerCast
- qSharedPointerObjectCast
Qt的智能指针提供了方便的资源管理工具,使得内存管理更加安全和容易。QPointer适用于QObject派生类,QSharedPointer和QWeakPointer适用于共享所有权和避免循环引用,QScopedPointer和QScopedArrayPointer适用于自动管理作用域内的资源。使用这些工具可以显著减少内存泄漏和野指针的风险,是现代Qt编程中不可或缺的一部分。下面详细介绍一下各个智能指针的用法。
QPointer
QPointer是一种弱指针,专门用于Qt的QObject派生类。它的主要用途是防止悬挂指针(dangling pointers)的出现。当QObject对象被删除时,所有指向它的QPointer会自动置为null,从而避免野指针的风险。 但同时QPointer不管理对象的生命周期(不控制内存释放).
#include <QPointer>
#