Base class for reference counted objects.
The SharedObject class is used in conjunction with SharedPointer to declare that objects of this type are allocated on the heap (only), are reference counted, and invoke "delete" on themselves when the reference count decreases to zero. Any object that is intended to be referenced by a SharedPointer must inherit directly or indirectly from SharedObject.
Here's an example that demonstrates some of the best practices:
Definition at line 64 of file SharedObject.h.
#include <SharedObject.h>
Default constructor.
Initializes the reference count to zero.
Definition at line 70 of file SharedObject.h.
Copy constructor.
Shared objects are not typically copy-constructed, but we must support it anyway in case the user wants to copy-construct some shared object. The new object has a ref-count of zero.
Definition at line 76 of file SharedObject.h.
Virtual destructor.
Verifies that the reference count is zero.
Definition at line 79 of file SharedObject.h.
Assignment.
Assigning one object to another doesn't change the reference count or mutex of either object.
Definition at line 86 of file SharedObject.h.