6 Klasy ................................................................ 79
Inicjalizowanie zmiennych składowych ................................... 80
Listy inicjalizacyjne.................................................... 81
Nieinicjalizowanie stałych wewnątrz konstruktora.......................... 82
Stałe składowe wymagają przydzielenia pamięci ........................... 83
Przydzielanie pamięci dla stałych niestatycznych w obszarze kodu programu .. 84
Ochrona zmiennych składowych przed dostępem z zewnątrz................. 85
Prywatne konstruktory i destruktory ...................................... 86
Korzystanie z informacji o typach uzyskiwanej podczas wykonywania
programu ....................................................... 87
Przeciążanie operatora przypisania podczas przydzielania pamięci............ 88
Ochrona przed wywołaniem się operatorów na sobie samych ................ 90
Sprawdzanie zbyt wielu parametrów to zbyt wiele.......................... 91
Tworzenie stałych operatorów ........................................... 93
Prywatne wywodzenie klasy pochodnej ................................... 94
Sprawdzanie rozmiaru klasy lub struktury................................. 95
Dziedziczenie zamiast unii .............................................. 96
Inicjalizowanie w unii .................................................. 98
Nierzutowanie na klasę pochodną........................................ 100
Używanie zmiennych składowych po usunięciu wskaźnika this .............. 101
7 Abstrakcyjne klasy podstawowe........................................ 103
Kompilator sprawdza konkretyzację abstrakcyjnej klasy podstawowej ....... 104
Projektowanie klas podstawowych spodziewających się implementacji
w klasie pochodnej............................................... 106
Dziedziczenie wymaga pamięci.......................................... 108
Wielodziedziczenie po abstrakcyjnych klasach podstawowych nie powoduje
niejednoznaczności .............................................. 109
8 Konstruktory......................................................... 113
Inicjalizowanie zmiennych składowych ................................... 114
Argumenty domyślne pozwalająna zmniejszenie liczby konstruktorów ....... 115
Tworzenie prywatnych konstruktorów .................................... 116
Tworzenie konstruktora kopiowania podczas przydzielania pamięci........... 118
Dbanie o kopiowanie przydzielonej pamięci w wypadku utworzenia
konstruktora kopiowania.......................................... 120
Utworzenie wirtualnych destruktorów w wypadku spodziewanego
dziedziczenia.................................................... 122
Jawne określanie używanego konstruktora w wypadku utworzenia kilku
konstruktorów................................................... 124
9 Dziedziczenie ......................................................... 127
Być kontra mieć ....................................................... 128
Zasady dotyczące zasięgu ............................................... 129
Wielodziedziczenie może powodować niejednoznaczność................... 132
i