- 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 25 und 26:
2. Datentypen und Variablen Die Ver
- Seite 27 und 28:
2.1 Primitive Datentypen 15 Wenn ma
- Seite 29 und 30:
2.1 Primitive Datentypen 17 hat man
- Seite 31 und 32:
2.1 Primitive Datentypen 19 Leser,
- Seite 33 und 34:
2.2 Deklaration, Definition und Ini
- Seite 35 und 36:
2.2 Deklaration, Definition und Ini
- Seite 37 und 38:
2.3 Das erste C++ Programm 25 Prinz
- Seite 39 und 40:
a g l o b a l v a r : 1 7 a n o t h
- Seite 41 und 42:
2.3 Das erste C++ Programm 29 • Z
- Seite 43 und 44:
2.4 Zusammengesetzte Datentypen 2.4
- Seite 45 und 46:
26 cout
- Seite 47 und 48:
2.4 Zusammengesetzte Datentypen 35
- Seite 49 und 50:
2.4 Zusammengesetzte Datentypen 37
- Seite 51 und 52:
2.4 Zusammengesetzte Datentypen 39
- Seite 53 und 54:
2.4 Zusammengesetzte Datentypen 41
- Seite 55 und 56:
2.4 Zusammengesetzte Datentypen 43
- Seite 57 und 58:
25 // of the anonymous union 26 num
- Seite 59 und 60:
2.6 Symbolische Konstanten 47 Ich m
- Seite 61 und 62:
2.7 Eigene Typdefinitionen 49 1. Ko
- Seite 63:
2.7 Eigene Typdefinitionen 51 Um ü
- Seite 66 und 67:
54 3. Operatoren kann auch durch Op
- Seite 68 und 69:
56 3. Operatoren Rang Bedeutung Ope
- Seite 70 und 71:
58 3. Operatoren Bis auf den “mod
- Seite 72 und 73:
60 3. Operatoren Definition, dass 0
- Seite 74 und 75:
62 3. Operatoren die Umwandlung in
- Seite 76 und 77:
64 3. Operatoren 46 typeid ( long l
- Seite 78 und 79:
66 3. Operatoren Was sieht man an u
- Seite 80 und 81:
68 3. Operatoren Zahl als int und a
- Seite 82 und 83:
70 3. Operatoren primitive Datentyp
- Seite 84 und 85:
72 3. Operatoren Wieso eigentlich k
- Seite 86 und 87:
74 4. Kontrollstrukturen 4.1 Select
- Seite 88 und 89:
76 4. Kontrollstrukturen Ich habe h
- Seite 90 und 91:
78 4. Kontrollstrukturen 8 using st
- Seite 92 und 93:
80 4. Kontrollstrukturen Im Gegensa
- Seite 94 und 95:
82 4. Kontrollstrukturen 23 cout
- Seite 97 und 98:
5. Funktionen Prinzipiell ist eine
- Seite 99 und 100:
5 6 using std : : cout ; 7 using st
- Seite 101 und 102:
5. Funktionen 89 vom Overloading in
- Seite 103 und 104: 5. Funktionen 91 korrekten Paramete
- Seite 105 und 106: 5. Funktionen 93 paar für den Expo
- Seite 107 und 108: 27 void show (double num) 28 { 29 c
- Seite 109 und 110: 1 // i n l i n e f u n c t i o n d
- Seite 111 und 112: 5. Funktionen 99 Einsatz. Dieser Um
- Seite 113 und 114: 5. Funktionen 101 feilscht (=linear
- Seite 115 und 116: 6. Pointer und References C ist sch
- Seite 117 und 118: 46 void changeVariable ( int32 &var
- Seite 119 und 120: 10 { 11 int32 my var = returnDeadVa
- Seite 121 und 122: 6.1 References 109 werden müsste,
- Seite 123 und 124: 42 a s t r u c t . a member = 17; 4
- Seite 125 und 126: 6.1 References 113 alltägliche Pra
- Seite 127 und 128: 6.2 Pointer 115 weitem stärker den
- Seite 129 und 130: 41 ” , ∗ my ptr : ”
- Seite 131 und 132: 6.2 Pointer 119 Wenn man aus guter
- Seite 133 und 134: 6.2 Pointer 121 bei unseren kleinen
- Seite 135 und 136: 6.2 Pointer 123 Zeilen 34-35: Hier
- Seite 137 und 138: 6.2 Pointer 125 Zeilen 51-56: Die F
- Seite 139 und 140: 25 for ( uint32 count = 0 ; count <
- Seite 141 und 142: 16 const uint32 NUM COLS = 7; 17 6.
- Seite 143 und 144: 6.2 Pointer 131 einen konstanten Po
- Seite 145 und 146: 6.2 Pointer 133 Auf einer Sun würd
- Seite 147 und 148: 7. Der Preprocessor In C ++ kommt d
- Seite 149 und 150: 7.2 Bedingte Übersetzung 137 im ak
- Seite 151: 7.3 Macros 139 dann kann man nette
- 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