调用 qsharedpointer 的 data() 时引用数是否发生变化
Does the number of references change when calling data() of a 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.
什么都不做
Returns the value of the pointer referenced by this object.
调用data()
不会改变引用计数。事实上,它并没有真正 做 任何事情。它的实现就是这样
inline T *data() const { return value; }
这直接取自Qt sources。
如果我写这段代码:
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.
Returns the value of the pointer referenced by this object.
调用data()
不会改变引用计数。事实上,它并没有真正 做 任何事情。它的实现就是这样
inline T *data() const { return value; }
这直接取自Qt sources。