return IntelWskPodst<T>::operator=(pt);
T *operator->() const
return m_pt;
};
Podobnie jak inteligentne wskaźniki do typów wbudowanych, inteligentne wskaźniki do obiektów automatycznie usuwają wskazywaną przez siebie pamięć podczas usuwania samych wskaźników. Klasa w podanym przykładzie jest pochodną klasy IntelWskPodst ze wskazówki 58. Główna różnica polega na tym, że klasa pokazana tutaj jest wzbogacona o obsługę operatora ->. Jeśli spróbujemy użyć jej z typem wbudowanym, takim jak int, to kompilator zgłosi błąd składniowy, gdyż dla takich typów operator ~> nie jest dostępny. Ten komunikat błędu stanowi jeszcze jeden poziom zabezpieczenia przed niepoprawnym użyciem.
Przykład: ObjectSmartPointer w pliku smartptr.h
unikanie awarii
Klasy inteligentnych wskaźników pokazane w pliku smartptr.h automatycznie usuwają wskazywaną pamięć wraz z usunięciem samych wskaźników. Osiąga się to, wywołując polecenie delete w destruktorze klasy. Działa to jednak tylko wówczas, gdy pamięć związana ze wskaźnikiem została przydzielona operacją new. Należy się upewnić, że polecenie usunięcia pamięci odpowiada poleceniu jej przydziału. Na przykład jeśli pamięć została przydzielona przez polecenie HeapAlloc, to musimy ją zwolnić za pomocą polecenia HeapFree.
unikanie awarii; unikanie nieoczekiwanych wyników
Przed
const Literał &operator=(const char *pch)
strcpy(m„rgch, pch); return *thi$: