别看那么多智能指针的中文文档,没看懂反而看蒙了
官方文档:
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()
{