- Seite 1: Klaus Schmaranz Softwareentwicklung
- Seite 4 und 5: VI Vorwort des Autors Es ist das vo
- Seite 6 und 7: VIII Vorwort des Autors Last, but n
- Seite 8 und 9: X Inhaltsverzeichnis 4. Kontrollstr
- Seite 10 und 11: XII Inhaltsverzeichnis 11. Exceptio
- Seite 13 und 14: 1. Ziel und Inhalt dieses Buchs Die
- Seite 15 und 16: 1.1 Zum Inhalt 3 z.B. bei Abhandlun
- Seite 17 und 18: 1.1 Zum Inhalt 5 stiegspunkte hat,
- Seite 19 und 20: 1.2 Motivation 7 über die Hälfte
- Seite 21: 1.4 Die beiliegende CD-ROM 9 Ich w
- Seite 26 und 27: 14 2. Datentypen und Variablen ding
- Seite 28 und 29: 16 2. Datentypen und Variablen Libr
- Seite 30 und 31: 18 2. Datentypen und Variablen Je n
- Seite 32 und 33: 20 2. Datentypen und Variablen Vors
- Seite 34 und 35: 22 2. Datentypen und Variablen je n
- Seite 36 und 37: 24 2. Datentypen und Variablen ist
- Seite 38 und 39: 26 2. Datentypen und Variablen 14 {
- Seite 40 und 41: 28 2. Datentypen und Variablen ande
- Seite 42 und 43: 30 2. Datentypen und Variablen teil
- Seite 44 und 45: 32 2. Datentypen und Variablen erla
- Seite 46 und 47: 34 2. Datentypen und Variablen Soba
- Seite 48 und 49: 36 2. Datentypen und Variablen Dime
- Seite 50 und 51: 38 2. Datentypen und Variablen 5 us
- Seite 52 und 53: 40 2. Datentypen und Variablen Ganz
- Seite 54 und 55: 42 2. Datentypen und Variablen lich
- Seite 56 und 57: 44 2. Datentypen und Variablen •
- Seite 58 und 59: 46 2. Datentypen und Variablen nich
- Seite 60 und 61: 48 2. Datentypen und Variablen besi
- Seite 62 und 63: 50 2. Datentypen und Variablen 20 u
- Seite 65 und 66: 3. Operatoren Nachdem nun einmal di
- Seite 67 und 68: 3.1 Überblick und Reihenfolge der
- Seite 69 und 70: 3.2 Arithmetische Operatoren 57 typ
- Seite 71 und 72: 3.3 Logische- und Vergleichsoperato
- Seite 73 und 74:
3.6 Datentypabfragen und explizite
- Seite 75 und 76:
3.6 Datentypabfragen und explizite
- Seite 77 und 78:
3.6 Datentypabfragen und explizite
- Seite 79 und 80:
3.6.2 Unchecked Cast 3.6 Datentypab
- Seite 81 und 82:
3.6 Datentypabfragen und explizite
- Seite 83 und 84:
3.6 Datentypabfragen und explizite
- Seite 85 und 86:
4. Kontrollstrukturen Als Kontrolls
- Seite 87 und 88:
4.1 Selection Statements 75 41 // F
- Seite 89 und 90:
4.1 Selection Statements 77 • Der
- Seite 91 und 92:
4.2 Schleifen 79 Vorsicht Falle: Ei
- Seite 93 und 94:
1 // for demo . cpp − small f o r
- Seite 95:
9 int main ( int argc , char ∗ ar
- Seite 98 und 99:
86 5. Funktionen “Datentyp” voi
- Seite 100 und 101:
88 5. Funktionen In den Zeilen 10-1
- Seite 102 und 103:
90 5. Funktionen Dieses Demoprogrä
- Seite 104 und 105:
92 5. Funktionen 51 cout
- Seite 106 und 107:
94 5. Funktionen • Das genaue Ver
- Seite 108 und 109:
96 5. Funktionen 24 { 25 cout
- Seite 110 und 111:
98 5. Funktionen 1 // i n l i n e f
- Seite 112 und 113:
100 5. Funktionen Wenden wir uns ab
- Seite 114 und 115:
102 5. Funktionen Es kann sogar pas
- Seite 116 und 117:
104 6. Pointer und References gewal
- Seite 118 und 119:
106 6. Pointer und References einer
- Seite 120 und 121:
108 6. Pointer und References struc
- Seite 122 und 123:
110 6. Pointer und References Bei d
- Seite 124 und 125:
112 6. Pointer und References Compi
- Seite 126 und 127:
114 6. Pointer und References gesta
- Seite 128 und 129:
116 6. Pointer und References auf d
- Seite 130 und 131:
118 6. Pointer und References ausle
- Seite 132 und 133:
120 6. Pointer und References 24 //
- Seite 134 und 135:
122 6. Pointer und References zum B
- Seite 136 und 137:
124 6. Pointer und References Zeile
- Seite 138 und 139:
126 6. Pointer und References durch
- Seite 140 und 141:
128 6. Pointer und References 4. sr
- Seite 142 und 143:
130 6. Pointer und References für
- Seite 144 und 145:
132 6. Pointer und References richt
- Seite 146 und 147:
134 6. Pointer und References dahin
- Seite 148 und 149:
136 7. Der Preprocessor und der Zie
- Seite 150 und 151:
138 7. Der Preprocessor Hier wird a
- Seite 153:
Teil II Objektorientierte Konzepte
- Seite 156 und 157:
144 8. Objektorientierung Allgemein
- Seite 158 und 159:
146 8. Objektorientierung Allgemein
- Seite 160 und 161:
148 8. Objektorientierung Allgemein
- Seite 162 und 163:
150 8. Objektorientierung Allgemein
- Seite 164 und 165:
152 8. Objektorientierung Allgemein
- Seite 166 und 167:
154 8. Objektorientierung Allgemein
- Seite 168 und 169:
156 8. Objektorientierung Allgemein
- Seite 170 und 171:
158 8. Objektorientierung Allgemein
- Seite 172 und 173:
160 8. Objektorientierung Allgemein
- Seite 174 und 175:
162 8. Objektorientierung Allgemein
- Seite 176 und 177:
164 8. Objektorientierung Allgemein
- Seite 179 und 180:
9. Klassen in C++ Nachdem nun zumin
- Seite 181 und 182:
53 } 54 9.1 Besonderheiten von Stru
- Seite 183 und 184:
9.2 Einfache Klassen 171 fe direkt
- Seite 185 und 186:
9.2 Einfache Klassen 173 Zurück zu
- Seite 187 und 188:
9.2 Einfache Klassen 175 geistiger
- Seite 189 und 190:
9.2 Einfache Klassen 177 Im Prinzip
- Seite 191 und 192:
9.2 Einfache Klassen 179 1. Es wird
- Seite 193 und 194:
49 } 50 9.2 Einfache Klassen 181 51
- Seite 195 und 196:
9.2 Einfache Klassen 183 Leider wir
- Seite 197 und 198:
11 /∗ 12 ∗ JustAClass 13 ∗ 14
- Seite 199 und 200:
25 ˜JustAClass ( ) ; 26 27 uint32
- Seite 201 und 202:
9.2 Einfache Klassen 189 diese beid
- Seite 203 und 204:
9.2 Einfache Klassen 191 String auc
- Seite 205 und 206:
22 23 const char ∗ getSymbol ( )
- Seite 207 und 208:
4 #include ”memory game card v2 .
- Seite 209 und 210:
9.3 Abgeleitete Klassen 197 • Man
- Seite 211 und 212:
9.3 Abgeleitete Klassen 199 Die dek
- Seite 213 und 214:
13 ∗ 14 ∗/ 15 16 class MemoryGa
- Seite 215 und 216:
9.3 Abgeleitete Klassen 203 Die Imp
- Seite 217 und 218:
7 using std : : endl ; 8 9 int main
- Seite 219 und 220:
9.3 Abgeleitete Klassen 207 1 // d
- Seite 221 und 222:
9.3 Abgeleitete Klassen 209 thode a
- Seite 223 und 224:
9.3 Abgeleitete Klassen 211 selbst
- Seite 225 und 226:
154 MyObject : : ˜ MyObject ( ) 15
- Seite 227 und 228:
9.3.2 Konstruktoren und Destruktore
- Seite 229 und 230:
9.3 Abgeleitete Klassen 217 Um nun
- Seite 231 und 232:
9.4 Weitere wichtige technische Asp
- Seite 233 und 234:
9.4 Weitere wichtige technische Asp
- Seite 235 und 236:
9.4 Weitere wichtige technische Asp
- Seite 237 und 238:
66 o b j ect . staticallyBoundMetho
- Seite 239 und 240:
27 ∗ BaseB 28 ∗ 29 ∗ j u s t
- Seite 241 und 242:
159 { 160 cout
- Seite 243 und 244:
9.4 Weitere wichtige technische Asp
- Seite 245 und 246:
9.4 Weitere wichtige technische Asp
- Seite 247 und 248:
44 } 45 t e x t = new char [ s t r
- Seite 249 und 250:
9.4 Weitere wichtige technische Asp
- Seite 251 und 252:
9.4 Weitere wichtige technische Asp
- Seite 253 und 254:
9.4 Weitere wichtige technische Asp
- Seite 255 und 256:
80 ∗ EventHandler 81 ∗ 82 ∗ c
- Seite 257 und 258:
9.4 Weitere wichtige technische Asp
- Seite 259 und 260:
9.4 Weitere wichtige technische Asp
- Seite 261 und 262:
9.4 Weitere wichtige technische Asp
- Seite 263 und 264:
7 using std : : cout ; 8 using std
- Seite 265 und 266:
9.4 Weitere wichtige technische Asp
- Seite 267 und 268:
41 9.4 Weitere wichtige technische
- Seite 269 und 270:
10. Memory - ein kleines Beispiel W
- Seite 271 und 272:
10.1 Das ADD 259 unserem eigentlich
- Seite 273 und 274:
10.2 Das DDD 261 kann sich sicher n
- Seite 275 und 276:
10.2 Das DDD 263 und eigene Änderu
- Seite 277 und 278:
10.2 Das DDD 265 83 ∗ @param inde
- Seite 279 und 280:
10.2.5 Konkrete Deletors 10.2 Das D
- Seite 281 und 282:
89 return ( d e l e t o r ) ; 90 }
- Seite 283 und 284:
221 return ( d e l e t o r ) ; 222
- Seite 285 und 286:
10.2 Das DDD 273 52 ∗ As i s the
- Seite 287 und 288:
59 ∗ are not known yet ) 60 ∗/
- Seite 289 und 290:
27 ∗/ 28 Vector d i s p l a y a b
- Seite 291 und 292:
10.2.11 OutputContext 10.2 Das DDD
- Seite 293 und 294:
10.2.13 GameCard 10.2 Das DDD 281 D
- Seite 295 und 296:
8 #include ” s i m p l e t e x t
- Seite 297 und 298:
10.2 Das DDD 285 kleine Hilfsklasse
- Seite 299 und 300:
10.2 Das DDD 287 93 ∗ handler i s
- Seite 301 und 302:
225 10.2 Das DDD 289 226 /∗ Retur
- Seite 303 und 304:
1 // s i m p l e t e x t d i s p l
- Seite 305 und 306:
42 } 43 44 /∗ Copy constructor 45
- Seite 307 und 308:
6 #include ” simple event handler
- Seite 309 und 310:
10.2 Das DDD 297 entsprechenden Kar
- Seite 311 und 312:
47 SimpleOutputHandling & output ha
- Seite 313 und 314:
1 // memory card symbol generator .
- Seite 315 und 316:
18 ∗ card or both cards have alre
- Seite 317 und 318:
8 #include ” simple output handli
- Seite 319 und 320:
10.3 Auszüge aus der Implementatio
- Seite 321:
10.3 Auszüge aus der Implementatio
- Seite 324 und 325:
312 11. Exceptions 1. Der Teil der
- Seite 326 und 327:
314 11. Exceptions 88 89 virtual vo
- Seite 328 und 329:
316 11. Exceptions deklariert sie m
- Seite 330 und 331:
318 11. Exceptions Vorsicht Falle:
- Seite 332 und 333:
320 11. Exceptions Außerdem gilt n
- Seite 334 und 335:
322 11. Exceptions 123 } 124 catch
- Seite 336 und 337:
324 11. Exceptions werden können,
- Seite 338 und 339:
326 11. Exceptions 29 30 //−−
- Seite 340 und 341:
328 11. Exceptions 38 protected : 3
- Seite 342 und 343:
330 11. Exceptions Vorsicht Falle:
- Seite 344 und 345:
332 11. Exceptions noch eine zusät
- Seite 347 und 348:
12. Operator Overloading Bei den bi
- Seite 349 und 350:
12.1 Grundprinzipien des Operator O
- Seite 351 und 352:
12.1 Grundprinzipien des Operator O
- Seite 353 und 354:
12.1 Grundprinzipien des Operator O
- Seite 355 und 356:
12.1 Grundprinzipien des Operator O
- Seite 357 und 358:
12.1 Grundprinzipien des Operator O
- Seite 359 und 360:
12.1 Grundprinzipien des Operator O
- Seite 361 und 362:
12.1 Grundprinzipien des Operator O
- Seite 363 und 364:
12.1 Grundprinzipien des Operator O
- Seite 365 und 366:
12.1 Grundprinzipien des Operator O
- Seite 367 und 368:
12.2 Typumwandlungen 355 einer ents
- Seite 369 und 370:
105 ( value > max ) ) 106 throw r a
- Seite 371 und 372:
12.2 Typumwandlungen 359 Dass diese
- Seite 373 und 374:
35 exc . what()
- Seite 375 und 376:
12.3 Speicherverwaltung 363 er dort
- Seite 377 und 378:
187 { 188 switch (mem type) 189 { 1
- Seite 379 und 380:
12.3 Speicherverwaltung 367 zurück
- Seite 381 und 382:
8 d e s t r u c t o r of MyNonVolat
- Seite 383 und 384:
12.3 Speicherverwaltung 371 länger
- Seite 385 und 386:
3 constructor of MyFastObject 4 new
- Seite 387 und 388:
53 void ∗ operator new( s i z e t
- Seite 389 und 390:
93 94 virtual ˜MyMemManagedObject(
- Seite 391 und 392:
49 class SpecialMemoryManagedObject
- Seite 393 und 394:
180 delete n o n v o l a t i l e o
- Seite 395 und 396:
12.3 Speicherverwaltung 383 99 cout
- Seite 397 und 398:
12.3 Speicherverwaltung 385 Blocks
- Seite 399 und 400:
101 throw ( ) ; 102 103 void operat
- Seite 401 und 402:
12.3 Speicherverwaltung 389 bedeute
- Seite 403 und 404:
12.3 Speicherverwaltung 391 d e s t
- Seite 405 und 406:
76 ∗/ 77 12.3 Speicherverwaltung
- Seite 407 und 408:
12.3 Speicherverwaltung 395 18 ∗
- Seite 409 und 410:
12.3 Speicherverwaltung 397 Wenn in
- Seite 411 und 412:
12.3 Speicherverwaltung 399 32 // i
- Seite 413 und 414:
24 throw ( ) { value = value ; } 25
- Seite 415:
12.4 Abschließendes zu overloadabl
- Seite 418 und 419:
406 13. Templates ist für das gene
- Seite 420 und 421:
408 13. Templates Bedeutung der Dek
- Seite 422 und 423:
410 13. Templates Deklaration und d
- Seite 424 und 425:
412 13. Templates ben wir es hier a
- Seite 426 und 427:
414 13. Templates tion geworfen wir
- Seite 428 und 429:
416 13. Templates In Zeile 48 wird
- Seite 430 und 431:
418 13. Templates 1 // find max tem
- Seite 432 und 433:
420 13. Templates 27 template clas
- Seite 434 und 435:
422 13. Templates 71 } 72 73 //−
- Seite 436 und 437:
424 13. Templates 21 f l o a t b u
- Seite 438 und 439:
426 13. Templates 5 6 #include ”
- Seite 440 und 441:
428 13. Templates 6 #include ” b
- Seite 442 und 443:
430 13. Templates 1 2 // b u f f e
- Seite 444 und 445:
432 13. Templates hält und schlie
- Seite 446 und 447:
434 13. Templates die Spezialisieru
- Seite 448 und 449:
436 13. Templates Alles, was mit de
- Seite 450 und 451:
438 13. Templates 89 ∗/ 90 templa
- Seite 452 und 453:
440 13. Templates g e n e r i c put
- Seite 454 und 455:
442 13. Templates solchen Buffer, a
- Seite 456 und 457:
444 13. Templates spielen möchte i
- Seite 458 und 459:
446 13. Templates 32 throw ( ) : r
- Seite 460 und 461:
448 13. Templates Executable dazuge
- Seite 462 und 463:
450 13. Templates 12 } 13 14 //−
- Seite 465 und 466:
14. Namespaces Als letztes Feature
- Seite 467 und 468:
49 { 50 i f ( num elements >= MAX N
- Seite 469 und 470:
36 char CharBuffer : : getNext ( )
- Seite 471 und 472:
14. Namespaces 459 tion stehen, als
- Seite 473:
14. Namespaces 461 Ein gutes Haar m
- Seite 476 und 477:
464 15. Verschiedenes 27 d i r t y
- Seite 478 und 479:
466 15. Verschiedenes 26 uint32 u i
- Seite 480 und 481:
468 15. Verschiedenes 158 { 159 Uni
- Seite 482 und 483:
470 15. Verschiedenes 15.3 Funktion
- Seite 484 und 485:
472 15. Verschiedenes so ganz genau
- Seite 486 und 487:
474 15. Verschiedenes Prinzip gleic
- Seite 488 und 489:
476 15. Verschiedenes Operator alte
- Seite 490 und 491:
478 15. Verschiedenes waren, musste
- Seite 492 und 493:
480 15. Verschiedenes Wir haben es
- Seite 494 und 495:
482 15. Verschiedenes Java zu tun h
- Seite 496 und 497:
484 15. Verschiedenes 61 cout
- Seite 498 und 499:
486 15. Verschiedenes 43 throw bad
- Seite 500 und 501:
488 15. Verschiedenes zurückkehrt.
- Seite 502 und 503:
490 15. Verschiedenes 98 } 99 100 s
- Seite 505 und 506:
16. Die C++ Standard Library Dieser
- Seite 507 und 508:
16.1 Übersicht 495 • Komponenten
- Seite 509 und 510:
16.2 Container 497 Lesen der entspr
- Seite 511 und 512:
16.2 Container 499 Zum Index-Operat
- Seite 513 und 514:
16.2 Container 501 Element immer vo
- Seite 515 und 516:
6 7 #include ” u s e r t y p e s
- Seite 517 und 518:
66 67 // push elements ( they are a
- Seite 519 und 520:
16.2 Container 507 Elemente über b
- Seite 521 und 522:
16.2 Container 509 Wie bei map ist
- Seite 523 und 524:
16.2 Container 511 Generelle Operat
- Seite 525 und 526:
16.3 Iterators 513 Abfragbare Daten
- Seite 527 und 528:
16.3 Iterators 515 end fordert eine
- Seite 529 und 530:
e v e r s e−i t e r a t i n g vec
- Seite 531 und 532:
16.5 Strings 519 kann man davon aus
- Seite 533 und 534:
15 int main ( int argc , char ∗ a
- Seite 535 und 536:
16.6 Streams 523 diese Objekte werd
- Seite 537 und 538:
8 9 using std : : ostream ; 10 usin
- Seite 539 und 540:
16.6 Streams 527 Files bereits nach
- Seite 541 und 542:
20 int main ( int argc , char ∗ a
- Seite 543 und 544:
16.7 Numerik 531 den muss, werden d
- Seite 545 und 546:
16.7 Numerik 533 static const bool
- Seite 547:
16.8 Algorithmen und Funktionsobjek
- Seite 550 und 551:
538 A. Coding-Standard Einheitlichk
- Seite 552 und 553:
540 A. Coding-Standard Structures:
- Seite 555 und 556:
B. Vollständige Implementation des
- Seite 557 und 558:
B.1.2 Implementation von Vector B.1
- Seite 559 und 560:
57 } B.1 Implementationen der einze
- Seite 561 und 562:
B.1 Implementationen der einzelnen
- Seite 563 und 564:
B.1 Implementationen der einzelnen
- Seite 565 und 566:
B.1 Implementationen der einzelnen
- Seite 567 und 568:
B.1 Implementationen der einzelnen
- Seite 569 und 570:
64 } 65 B.1 Implementationen der ei
- Seite 571 und 572:
B.1 Implementationen der einzelnen
- Seite 573:
Literaturverzeichnis [Coplien 1991]
- Seite 576 und 577:
564 Index - Access Specifiers, 173
- Seite 578 und 579:
566 Index - Ableitung, 160, 164 - C
- Seite 580 und 581:
568 Index static Binding, 223 stati
- Seite 583:
Über den Autor Klaus Schmaranz ist