Klasy
~Napis(void)
if(m_pch)
delete m_pch;
};
Wszystkie zmienne składowe trzeba inicjalizować, tak jak zmienne lokalne. W rzeczywistości inicjalizowanie zmiennych składowych jest nawet ważniejsze, ponieważ zrezygnowanie z tego może znacznie utrudnić odszukanie powodu błędnego działania programu. Zmienne te funkcjonują bowiem „poza” funkcjami. Niezainicjalizowanie zmiennych może spowodować całą gamę różnych błędów i powstanie niepoprawnych wyników. We fragmencie „Przed” nie zainicjowaliśmy wskaźnika pamięci wartością zerową. Jeśli przed nadaniem wskaźnikowi poprawnej wartości zostanie wywołany destruktor, to operacja delete może być przeprowadzona na jakiejś losowej wartości. Alokatory pamięci nie lubią zwalniania nieznanych wskaźników i zwykle zgłaszają to błędnym przerwaniem programu.
Należy wyrobić sobie nawyk inicjalizowania zmiennych składowych w momencie ich definiowania. To pomoże uchronić się przed kłopotami.
Są dwa sposoby inicjalizowania zmiennych składowych. Będą omówione we wskazówce 70., chociaż oba zostały już użyte we właśnie przerobionym przykładzie.
Przykład: klasa String w pliku String.cpp
pisanie szybkiego kodu
Przed
class Napis { private:
const int m_cchTest; int m_cch; char *m_pch; public:
Napis(void)
m_cch = 0; m_cchTest = 10;