Każda tworzona klasa musi być zaopatrzona w konstruktor. W tym rozdziale poznamy wskazówki dotyczące tego elementu klasy. Nauczymy się na przykład używa;, argumentów domyślnych w celu zredukowania liczby tworzonych konstruktorów. Po nadto będzie mowa o wirtualnych destruktorach, a także o wielu innych rzeczach.
unikanie nieoczekiwanych wyników
Przed
class Napis
private:
const int m_cchTest; int m_cch;
};
char *m_pch;
Po
class Napis
private:
const int m_cchTest; int m_cch; char *m_pch; public:
Napis(void) : m_cch(0), m_cchTest(10), m_pch(NULL)
};
Mówiliśmy o tym już kilka razy, ale warto powtórzyć. Zawsze należy inicjalizować zmienne składowe. Dzięki temu będziemy znali ich stan jeszcze przed ich użyciem. Jest to fundamentalna zasada, której należy ściśle przestrzegać. W momencie, kiedy deklarujemy zmienną w definicji klasy, należy podać kod inicjalizujący tę zmienną.
Zmienne można zainicjalizować na dwa sposoby — za pomocą listy inicjalizującej lub kodu wewnątrz konstruktora. Ogólnie, najlepiej używać list inicjalizujących, gdyż są bardziej wydajne.