#include <SmartPtr.h>
What is a smart pointer? It is a class that wraps a pointer to a dynamically allocated object. Various smart pointers can share the same object counting references for that object. When the last smart pointer is destroyed, the object is automatically deleted.
It's used internally by Vaca to wrap classes that can't be derivable and handle graphics resources (like Brush, Pen, Image, Icon, etc.).
T | Must be of Referenceable type, because Referenceable has the reference counter. |
Public Member Functions | |
SmartPtr () | |
SmartPtr (T *ptr) | |
SmartPtr (const SmartPtr &other) | |
virtual | ~SmartPtr () |
SmartPtr & | operator= (const SmartPtr &other) |
T * | get () const |
T & | operator* () const |
T * | operator-> () const |
Private Member Functions | |
void | ref () |
void | unref () |
Private Attributes | |
T * | m_ptr |
Vaca::SmartPtr< T >::SmartPtr | ( | ) | [inline] |
Vaca::SmartPtr< T >::SmartPtr | ( | T * | ptr | ) | [inline, explicit] |
Vaca::SmartPtr< T >::SmartPtr | ( | const SmartPtr< T > & | other | ) | [inline] |
virtual Vaca::SmartPtr< T >::~SmartPtr | ( | ) | [inline, virtual] |
SmartPtr& Vaca::SmartPtr< T >::operator= | ( | const SmartPtr< T > & | other | ) | [inline] |
T* Vaca::SmartPtr< T >::get | ( | ) | const [inline] |
T& Vaca::SmartPtr< T >::operator* | ( | ) | const [inline] |
T* Vaca::SmartPtr< T >::operator-> | ( | ) | const [inline] |
void Vaca::SmartPtr< T >::ref | ( | ) | [inline, private] |
void Vaca::SmartPtr< T >::unref | ( | ) | [inline, private] |
T* Vaca::SmartPtr< T >::m_ptr [private] |