QWeakPointer Class

template <typename T> class QWeakPointer

The QWeakPointer class holds a weak reference to a shared pointer. More...

Header: #include <QWeakPointer>
qmake: QT += core
Since: Qt 4.5

This class was introduced in Qt 4.5.

Note: All functions in this class are reentrant.

Detailed Description

The QWeakPointer is an automatic weak reference to a pointer in C++. It cannot be used to dereference the pointer directly, but it can be used to verify if the pointer has been deleted or not in another context.

QWeakPointer objects can only be created by assignment from a QSharedPointer.

It's important to note that QWeakPointer provides no automatic casting operators to prevent mistakes from happening. Even though QWeakPointer tracks a pointer, it should not be considered a pointer itself, since it doesn't guarantee that the pointed object remains valid.

Therefore, to access the pointer that QWeakPointer is tracking, you must first promote it to QSharedPointer and verify if the resulting object is null or not. QSharedPointer guarantees that the object isn't deleted, so if you obtain a non-null object, you may use the pointer. See QWeakPointer::toStrongRef() for an example.

See also QSharedPointer and QScopedPointer.