Obsah Předmluva...11 P ře d p o k la d y... 11 T erm in o lo g ie...12 T ypografické k o n v en ce...12 1. OOP pro mírně pokročilé... 13 2. Dědičnost...14 2.1 P řístu p o v á p rá v a... 18 2.2 K o n stru k to ry...23 2.3 P řek rý v án í m e to d... 28 2.4 D estru k to ry... 32 2.5 D ědičnost v O b ject Pascalu (D elphi)... 35 3. Ukazatele do třídy...37 3.1 O b jekty a obyčejné u k a z a te le...37 U kazatele na d a ta... 37 U kazatele na m e to d y... 38 3.2 U kazatele do tř íd...38 U kazatele na d a ta... 38 O p e rá to ry a...40 P o zn ám k y...40 U kazatele na m e to d y... 41 3.3 U kazatele na m etody v O bject P a sc a lu...41 4. Časná a pozdní vazba...43 4.1 J e nebo m á... 43 P o z n á m k a... 46 4.2 K dyž sam otná dědičnost p řestan e fu n g o v at...46 A b stra k tn í tř íd y...46 P rv n í pokus o p ro g ra m...47 P ro g ram nefunguje. P ro č?... 53 C o s tím?...54 Ř ešení pom ocí tříd n ích ukazatelů v C ++...57 4.3 V irtu á ln í m eto d y...62 D eklarace v irtu á ln í m e to d y...62 4.4 N ev irtu áln í m e to d y...65 4.5 Polym orfism us... 65
P ro č nejsou všechny m etody v irtu á ln í...65 A b stra k tn í a instanční tříd y...65 O p ět grafický e d ito r... 67 V irtu áln í d e s tru k to ry... 69 J a k to fu n g u je...70 4.6 C ena polym orfism u...71 K dy se pozdní vazba u p latn í...71 K onstru k to ry, d estru k to ry a v irtu áln í m eto d y...72 4.7 D elphi: M etody pro o šetření zp ráv od W in d o w s... 76 5. Příklad: jednoduchý grafický editor... 77 5.1 O rganizace objektového p ro g ra m u...77 5.2 Z a d á n í...7 7 5.3 Z ákladní schém a p ro g ra m u...78 Uživatelské ro z h ra n í... 80 Znakové ře tě z c e... 81 O šetření c h y b... 82 K om unikační k a n á l...82 V ýkonná č á st... 82 5.4 D alší zpřesňování n á v rh u... 82 T říd a m enu...83 K o n stru k to r...85 T říd a m ys (čti m y š)...87 Z vláštní klávesy...88 K anál...88 G rafické o b je k ty...88 5.5 D okončení... 91 5.6 A m ůžem e si kreslit... 98 F antazii se m eze nekladou... 98 6. Vícenásobná dědičnost... 100 6.1 J a k je to s vícenásobnou dědičností...100 D eklarace... 100 V ýznam...100 Instance, k o n stru k to ry a d e stru k to ry... 101 P řety p o v ání ukazatelů...101 K onflikty jm e n...103 6.2 P roblém y s vícenásobnou dědičností: datové p ro u d y... 105 6.3 V irtu áln í d ě d ě n í... 106 J a k v y p ad á potom ek, k terý m á v irtu áln í p řed k y... 106 V irtu áln í a n ev irtu áln í předkové... 108 K o n stru k to ry a d estru k to ry při virtuálním d ě d ě n í...109
7. Šablony...112 7.1 К čem u to?...112 7.2 T ro cha te o rie... 115 D eklarace šab lo n y... 115 7.3 Šablony řadových fu n k cí... 116 D ek larace... 116 Instance šablony řadové fu n k c e... 117 B ezpečnost p r á c e... 120 A N SI C++: explicitní kvalifikace... 120 7.4 Šablony objektových typů a jejich m eto d... 121 D eklarace... 121 Instance šablony objektového ty p u...123 V ložené sp řátelen é funkce...126 7.5 Šablony v rozsáhlých p ro g ra m e c h...126 Šablony v borlandských p řek lad ačích...127 V šechno lze z k a z it... 127 7.6 Šablony v knihovnách...129 7.7 P řík lad...129 T říd ě n í...129 P rv ek sezn am u...131 S eznam...131 Ite rá to r...132 8. Datové proudy v jazyce C++... 135 8.1 Soubory a p ro u d y... 135 8.2 Z ákladní inform ace...136 H lavičkové so u b o ry... 136 T říd a ios...138 D alší proudové tříd y... 139 F o rm á to v á n í... 144 P řík la d y...146 K onzolové p ro u d y... 149 N eform átované vstupy a v ý stu p y... 151 8.3 V stup a výstup uživatelských ty p ů...152 8.4 M an ip u láto ry... 153 M an ip u láto ry bez p a ra m e trů...153 M an ip u láto ry s jedním p a ra m e trem... 154 9. Výjimky...160 9.1 O co vlastně jd e...160 T olerance vůči c h y b á m...160 V ýjim ka: co to je?... 161 C hyby v k n ih o v n ách... 161
9.2 V ýjim ky v C + +...163 P rv n í p řib lížen í...163 Syntax výjim ek...164 P řík la d...166 K dyž d ojde к výjim ce... 168 Pošli to d á l...168 H a n d le r...169 V ýjim ky a bloková stru k tu ra p ro g ra m u... 171 N eošetrené a neočekávané výjim ky...175 S ta n d a rd n í v ý jim ky... 175 S ta n d a rd n í k n ih o v n a... 176 C ena výjim ek... 177 9.3 S tru k tu ro v ané výjim ky v jazyku С...178 P rv n í p řib líž e n í...178 P řen o s inform ací o v ý jim ce... 179 Syntax stru k tu ro v aných v ý jim ek... 180 P řík la d...181 J a k vznikají stru k tu ro v an é v ý jim k y... 183 F iltro v ání v ý jim e k...184 K oncovka b lo k u... 187 K oncovky a v ý jim ky... 189 9.4 S tru k tu ro v a n é výjim ky a C + +... 193 9.5 V ýjim ky v D e lp h i... 193 V znik v ý jim k y... 193 V ýjim kové tř íd y... 194 J a k výjim ku z a c h y tit... 196 K oncovka b lo k u... 198 V ýjim ky v k o n stru k to re c h...199 10. Dynamická identifikace typů...200 10.1 D ynam ická identifikace typů v C + +... 200 O p e rá to r ty p e id...200 typeid v rací ty p e in f o... 201 T říd a type in fo... 203 Na co se R T T I nehodí... 204 B orlandská ro zšíření dynam ické identifikace ty p ů...204 rtti...205 N orm a se v y v íjí... 205 10.2 D ynam ická identifikace typů v O bject P ascalu...206 11. Operátory pro bezpečnější přetypování...208 11.1 Č tveřice nových přetypovacích o p eráto rů v C + +...208 P ro č to?... 208
O p e rá to r d y n a m ic c a s t...209 O p e rá to r sta tic _ c a st...214 O p e rá to r r e in te r p r e tc a s t... 217 O p e rá to r c o n s tc a s t...219 Со s tím... 220 11.2 Nový přetypovací o p e rá to r v O bject P ascalu...220 12. Prostory jm en...222 12.1 O co vlastně j d e...222 12.2 D eklarace p ro sto ru jm en...223 P řezdívky p ro sto ru jm en - alias...225 D eklarace po č á ste c h...225 A nonym ní p ro sto r jm e n...226 12.3 u sin g... 226 D eklarace using... 227 D irektiva u sin g... 227 P ro sto ry jm en a tř íd y... 228 12.4 V yhledávání o p e rá to rů... 229 13. Dodatek...231 13.1 _C L A SSD E F a m ak ra, k terá s ním so u v isí... 231 13.2 O b o rlan d sk é g ra fic e...232 13.3 O myši a jiných hlo d av cích...234 P seudoprom ěnné...237 13.4 D louhý sk o k...237 13.5 S ta n d a rd n í knihovna jazyka C + +... 239 K o n tejn ery a ite rá to ry... 240 G enerické alg o ritm y... 242 P řík la d... 243 A lgoritm y p ro setříd ěn é k ontejnery...244 K om plexní čísla... 244 Ř etězce... 245 Systém ové k o n sta n ty...245 A utom atické u k a z a te le... 246 13.6 P řehled novinek v C + +... 247 S o u h rn... 247 D eklarace v p řík a z e c h... 248 D eklarace tř íd y...250 D atové typy... 252 L ite ra tu ra... 254 R e jstřík...255