virtua! ~lntelWskPodst()
rf(m_pt)
delete m_pt; m_pt = NULL;
T &operator*() const
return *m_pt;
Pt!operator=(T *pt)
mpt = pt;
return m_pt;
};
Inteligentne wskaźniki automatycznie zwalniają wskazywaną przez siebie pamięć podczas ich usuwania, pomagając w uniknięciu częstego powodu strat pamięci. Tworzenie takich wskaźników jest łatwe — wystarczy skorzystać z szablonów. Może się zdawać, że jest to nieoszczędność pamięci. Okazuje się jednak, że koszt jest tylko nieznacznie większy, a korzyści są warte tej zmiany.
Dla lepszego zabezpieczenia przed stratami pamięci warto połączyć użycie inteligentnych składników ze zliczaniem odwołań.
Przykład: BaseSmartPointer w pliku smartptr.h
unikanie strat pamięci
Kod źródłowy
template <class T> class IntelWskObiekt: public InteIWskPodst <T>
public:
IntelWskObiektfT* pt=NULL) : lntelWskPodst<T>(pt)
T* operator=(T *pt)