c++ - 调用 qsharedpointer 的 data() 时引用数是否发生变化

标签 c++ qt qsharedpointer

如果我写这段代码:

QSharedPointer<int> ptr(new int());  

指向整数的引用数为1。
但是当我这样调用 data() 时:

QSharedPointer<int> ptr(new int());   
int* ptr2 = ptr.data();  

引用数是1还是2?
感谢您的帮助。

最佳答案

不会改变。 QSharedPointer只与 QSharedPointer 共享指针。它不会也不能与原始指针共享。

QSharedPointer will delete the pointer it is holding when it goes out of scope, provided no other QSharedPointer objects are referencing it.

QSharedPointer::data()除了

Returns the value of the pointer referenced by this object.

关于c++ - 调用 qsharedpointer 的 data() 时引用数是否发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35972192/

相关文章:

c++ - 为什么我不能在其他成员函数中使用我的构造函数中的变量 "i"? C++

c++ - QT中如何将变量从一个线程共享到多个线程

c++ - 来自原始指针的 QSharedPointer

c++ - QSharedPointer 不返回 false

c++ - 如何以正确的方式从容器中删除 QSharedPointer

c++ - 重载运算符 >>()

c++ - 将 'B' 转换为 0xB

c++ - 如何获取二维原生数组的迭代器

c++ - Qt C++ QPaint与QVector

c++ - 我如何将 QString 转换为 char*