Base class wraping a Rep* and managing reference counting. More...
#include <Rep.h>
Public Member Functions | |
operator const void * () const | |
Protected Member Functions | |
BasicRepPtr () | |
BasicRepPtr (Rep *ptr) | |
BasicRepPtr (const BasicRepPtr &rhs) | |
BasicRepPtr & | operator= (const BasicRepPtr &rhs) |
~BasicRepPtr () | |
Rep * | repPtr () const |
Private Member Functions | |
void | _assign (Rep *new_r) |
Private Attributes | |
Rep * | _ptr |
Friends | |
std::ostream & | operator<< (std::ostream &str, const BasicRepPtr &obj) |
Base class wraping a Rep* and managing reference counting.
A BasicRepPtr is explicity constructed from a Rep*. It references Rep while it holds the pointer and adjusts the reference counter on copy and assignment.
It may serve as base for template classes operating on data classes derived from Rep. For example VarPtr.
BasicRepPtr::BasicRepPtr | ( | ) | [inline, protected] |
Default ctor: NULL
BasicRepPtr::BasicRepPtr | ( | const BasicRepPtr & | rhs | ) | [inline, protected] |
BasicRepPtr::~BasicRepPtr | ( | ) | [inline, protected] |
References _assign().
void BasicRepPtr::_assign | ( | Rep * | new_r | ) | [inline, private] |
Takes care of reference counter when assigning _ptr a new value.
References _ptr, Rep::ref(), and Rep::unref().
Referenced by BasicRepPtr(), operator=(), and ~BasicRepPtr().
BasicRepPtr::operator const void * | ( | ) | const [inline] |
Allow easy test for NULL.
References _ptr.
BasicRepPtr& BasicRepPtr::operator= | ( | const BasicRepPtr & | rhs | ) | [inline, protected] |
Rep* BasicRepPtr::repPtr | ( | ) | const [inline, protected] |
std::ostream& operator<< | ( | std::ostream & | str, | |
const BasicRepPtr & | obj | |||
) | [friend] |
Print out the Rep object.
Rep* BasicRepPtr::_ptr [private] |
The Rep*.
Referenced by _assign(), BasicRepPtr(), operator const void *(), operator=(), and repPtr().