SharedPtr Class Template Reference

List of all members.

Detailed Description

template<typename T>
class omni::smart::SharedPtr< T >

Smart pointer with reference counting.

This class automatically manages object's number of references. Constructor increases the number of references. Destructor decreases number of references. The object should be dynamically created using new operator.

This class behaves the same as a simple pointer to the object. It define dereference operators and compare operators (== и !=). The smart pointer can be "null".

The type T can be derived from SharedObj class. In this case the SharedPtr class has no additional costs. Otherwise for each object the reference counter will be dynamically created.

Parameters:
T The object type.
See also:
Указатель с подсчётом ссылок

Public Types

Public Member Functions


Member Typedef Documentation

typedef inherited::reference reference

Reference type.

typedef inherited::pointer pointer

Pointer type.

typedef pointer(ThisType::*) unspecified_bool_type() const

Unspecified bool type.


Constructor & Destructor Documentation

SharedPtr (  )  [inline]

Create "null" pointer.

This constructor creates "null" pointer.

  SharedPtr<MyClass> p;
  f(*p); // null pointer exception

SharedPtr ( pointer  ptr  )  [inline, explicit]

Attach simple pointer.

This constructor increases (*p) object's number of references.

Parameters:
[in] ptr Simple pointer.

SharedPtr ( const ThisType other  )  [inline]

Copy construction.

This constructor increases (*x) object's number of references.

Parameters:
[in] other Smart pointer.

~SharedPtr (  )  [inline]

Destruction.

The destructor decreases object's number of references. So if there is no more references, object will be destroyed.


Member Function Documentation

ThisType& operator= ( const ThisType other  )  [inline]

Assign smart pointer.

Если автоматический указатель ссылался на объект, то у старого объекта уменьшается количество ссылок.

Запоминает указатель на новый объект &*x, и если он не является нулевым, то увеличивает у нового объекта количество ссылок.

Parameters:
[in] x Smart pointer.
Returns:
Self reference.

reference operator * (  )  const [inline]

Ссылка на объект.

Метод разъименовывает умный указатель. Если указатель нулевой, произойдет обращение по нулевому адресу.

Returns:
Ссылка на объект.

pointer operator-> (  )  const [inline]

Указатель на объект.

Метод разъименовывает умный указатель.

Returns:
Простой указатель на объект.

pointer get (  )  const [inline]

Проверить на "нулевой" указатель.

Метод проверяет является ли умный указатель нулевым.

Returns:
true Если умный указатель нулевой, иначе false.

bool unique (  )  const [inline]

Проверить уникальность указателя.

Метод проверяет, является ли текущий автоматический указатель уникальным, т.е. на хранимый объект существует только одна ссылка.

Returns:
true Если умный указатель уникальный, иначе false.

operator unspecified_bool_type (  )  const [inline]

Check for non "NULL".

bool operator! (  )  const [inline]

Check for "NULL".

void swap ( ThisType other  )  [inline]

Swap two pointers.


Generated on Wed Jun 6 17:27:47 2007 for OMNI by  doxygen 1.5.2