A smart-pointer class which points to a reference-counted object. More...
Public Types | |
| typedef ReferenceCountedObjectClass | ReferencedType |
| The class being referenced by this pointer. | |
Public Member Functions | |
| ReferenceCountedObjectPtr () noexcept | |
| Creates a pointer to a null object. | |
| ReferenceCountedObjectPtr (ReferenceCountedObjectClass *const refCountedObject) noexcept | |
| Creates a pointer to an object. | |
| ReferenceCountedObjectPtr (const ReferenceCountedObjectPtr< ReferenceCountedObjectClass > &other) noexcept | |
| Copies another pointer. | |
| ReferenceCountedObjectPtr < ReferenceCountedObjectClass > & | operator= (const ReferenceCountedObjectPtr< ReferenceCountedObjectClass > &other) |
| Changes this pointer to point at a different object. | |
| ReferenceCountedObjectPtr < ReferenceCountedObjectClass > & | operator= (ReferenceCountedObjectClass *const newObject) |
| Changes this pointer to point at a different object. | |
| ~ReferenceCountedObjectPtr () | |
| Destructor. | |
| operator ReferenceCountedObjectClass * () const noexcept | |
| Returns the object that this pointer references. | |
| ReferenceCountedObjectClass * | operator-> () const noexcept |
| ReferenceCountedObjectClass * | getObject () const noexcept |
| Returns the object that this pointer references. | |
A smart-pointer class which points to a reference-counted object.
The template parameter specifies the class of the object you want to point to - the easiest way to make a class reference-countable is to simply make it inherit from ReferenceCountedObject, but if you need to, you could roll your own reference-countable class by implementing a pair of mathods called incReferenceCount() and decReferenceCount().
When using this class, you'll probably want to create a typedef to abbreviate the full templated name - e.g.
typedef ReferenceCountedObjectPtr<MyClass> MyClassPtr;
| typedef ReferenceCountedObjectClass ReferenceCountedObjectPtr< ReferenceCountedObjectClass >::ReferencedType |
The class being referenced by this pointer.
| ReferenceCountedObjectPtr< ReferenceCountedObjectClass >::ReferenceCountedObjectPtr | ( | ) |
Creates a pointer to a null object.
| ReferenceCountedObjectPtr< ReferenceCountedObjectClass >::ReferenceCountedObjectPtr | ( | ReferenceCountedObjectClass *const | refCountedObject ) |
Creates a pointer to an object.
This will increment the object's reference-count if it is non-null.
| ReferenceCountedObjectPtr< ReferenceCountedObjectClass >::ReferenceCountedObjectPtr | ( | const ReferenceCountedObjectPtr< ReferenceCountedObjectClass > & | other ) |
Copies another pointer.
This will increment the object's reference-count (if it is non-null).
| ReferenceCountedObjectPtr< ReferenceCountedObjectClass >::~ReferenceCountedObjectPtr | ( | ) |
Destructor.
This will decrement the object's reference-count, and may delete it if it gets to zero.
| ReferenceCountedObjectPtr<ReferenceCountedObjectClass>& ReferenceCountedObjectPtr< ReferenceCountedObjectClass >::operator= | ( | const ReferenceCountedObjectPtr< ReferenceCountedObjectClass > & | other ) |
Changes this pointer to point at a different object.
The reference count of the old object is decremented, and it might be deleted if it hits zero. The new object's count is incremented.
| ReferenceCountedObjectPtr<ReferenceCountedObjectClass>& ReferenceCountedObjectPtr< ReferenceCountedObjectClass >::operator= | ( | ReferenceCountedObjectClass *const | newObject ) |
Changes this pointer to point at a different object.
The reference count of the old object is decremented, and it might be deleted if it hits zero. The new object's count is incremented.
| ReferenceCountedObjectPtr< ReferenceCountedObjectClass >::operator ReferenceCountedObjectClass * | ( | ) | const |
Returns the object that this pointer references.
The pointer returned may be zero, of course.
| ReferenceCountedObjectClass* ReferenceCountedObjectPtr< ReferenceCountedObjectClass >::operator-> | ( | ) | const |
| ReferenceCountedObjectClass* ReferenceCountedObjectPtr< ReferenceCountedObjectClass >::getObject | ( | ) | const |
Returns the object that this pointer references.
The pointer returned may be zero, of course.