blog.garaż.net

12 sierpień 2009

Inteligentne wskaźniki

Inteligentne wskaźniki to bardzo pomocne twory. Dzięki nim nie trzeba pamiętać głównie o zwolnieniu obiektu w różnych przypadkach, a o błędy z tego wynikające nietrudno.

Istnieje masa różnych implementacji inteligentnych wskaźników, od najprostszych usuwających obiekt, na który wskazują w momencie kiedy jest usuwany obiekt wskaźnika lub przypisywana jest nowa wartość, poprzez zliczające, kopiujące i masę innych. Zależnie od funkcji jakie ma spełniać i do jakich celów mamy zamiar go używać każdy może przygotować własną implementację.

Najprostsza wersja może wyglądać tak:

{geshi lang=cpp}template class ptr { private: T m_pointer; ptr(T& pointer) {} T& operator= (ptr& obj) {} public: ptr() : m_pointer(NULL ...