Qt QPointer 简单入门介绍
摘要这篇博客主要介绍了Qt中的智能指针QPointer简单介绍了QPointer的使用方法和使用场景。关键词QPointer、智能指针简单介绍QPointer是 Qt 提供的一个智能指针模板类专门用于安全地持有QObject及其派生类的指针。它的核心特性是当所指向的对象被销毁时QPointer会自动置为 nullptr空指针从而避免悬空指针问题。常用函数void clear()T * data() constbool isNull() const简单使用QPointerQWidget ptr new QWidget;if (!ptr.isNull()) {QWidget* raw ptr.data(); // 获取原始指针raw-show();}ptr.clear(); // 将 QPointer 置空不 delete 对象// 注意这里需要手动 delete因为 QPointer 不负责内存管理delete ptr.data(); // 实际上此时 data() 已是 nullptr安全但无必要// 更常见的做法是对象由 parent 管理或在其他地方 delete使用范围用途安全地观察一个QObject是否还活着。优势避免因对象销毁导致的野指针崩溃。典型场景缓存 widget 指针、跨异步操作持有对象、防止重复 delete。记住只用于QObject子类且不负责 delete 对象。