【QT】Qt智能指针QPointer、QSharedPointer、QWeakPointer、QScopedPointer

QPointer

QPointer can only point to QObject instances. It will be automatically set to nullptr if the pointed to object is destroyed. It is a weak pointer specialized for QObject.
QPointer只能指向QObject实例。如果指向的对象被销毁,它将自动设置为 nullptr。它是一个专门用于QObject的弱指针。

template <typename T>
class QPointer

QObject *obj = new QObject;
QPointer<QObject> pObj(obj);
delete obj;
Q_ASSERT(pObj.isNull()); // pObj will be nullptr now

PS:请注意,类T必须继承自QObject,否则将导致编译或链接错误。

QSharedPointer

A reference-counted pointer. The actual object will only be deleted, when all shared pointers are destroyed. Equivalent to std::shared_ptr.
引用计数指针。只有当所有共享指针都被销毁时,实际对象才会被删除。相当于 std::shared_ptr。

template <typename T>
class QSharedPointer

int *pI = new int;
QSharedPointer<int> pI1(pI);
QSharedPointer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值