unikanie nieoczekiwanych wyników
void Napis::lnicjNapis(char * pch, int cch)
m_cch = 0; m_pch ~ NULL; if(cch)
void Napis::lnicjNapis(const char * pch, int cch)
m_cch = 0; m_pch = NULL; if(cch)
Użycie deklaracji const przed wskaźnikiem gwarantuje, że zawartość w buforze nie zmieni się. We fragmencie „Przed” metoda InicjNapis mogłaby zmienić zawartość napisu inicjalizującego, gdybyśmy chcieli. We fragmencie „Po” metoda InicjNapis nie może zmienić zawartości napisu inicjalizującego. Zapewnia to dodatkowy poziom bezpieczeństwa uniemożliwiający nieoczekiwane zapisywanie pamięci.
Przykład: String::InitStringQ w pliku String.cpp
kompilowanie kodu
void Te$tConstConst1(char const * const*ppch)
char ch;
*ppch - &ch; //Błąd **ppch = ch; //Błąd
void TestConstConst2(char *const*ppch)