别看那么多智能指针的中文文档,没看懂反而看蒙了
官方文档:
QSharedPointer will delete the pointer it is holding when it goes out of scope, provided no otherQSharedPointer objects are referencing it.
QSharedPointer在代码执行超出其作用域,且是最后一个holding p的QSharedPointer时(p为其holding的指针),将执行delete p。
与QScopedPointer不同的是,QSharedPointer允许互相复制,直到所有holding p的QSharedPointer都超出作用域时,再执行delete p。
就这么简单!
另外:
1.即使A继承子QObject,在删除A对象时也不会自动删除A new的对象,需要显式指定父子关系
2.多次测试暂未发现智能指针因多次析构而发生错误
测试代码:
class QtSmartPointerTest
{
public:
QtSmartPointerTest()
{
qDebug() << "crea
QT智能指针QSharedPointer详解

本文档解析QSharedPointer的工作原理,它会在超出作用域且是最后一个持有指针的实例时删除所持有的对象。与QScopedPointer不同,QSharedPointer支持复制。即便对象继承自QObject,也需要手动设置父子关系以确保正确删除。测试代码展示了QSharedPointer的使用和析构过程。
最低0.47元/天 解锁文章
4602

被折叠的 条评论
为什么被折叠?



