C++ - Einführung und professionelle Programmierung
von: Ulrich Breymann
Carl Hanser Fachbuchverlag, 2005
ISBN: 9783446404175
Sprache: Deutsch
753 Seiten, Download: 7461 KB
Format: PDF, auch als Online-Lesen
| Vorwort | 8 | ||
| Auf einen Blick | 12 | ||
| Inhaltsverzeichnis | 14 | ||
| Teil I Einführung in die Sprache | 24 | ||
| 1 Einführung | 26 | ||
| 1.1 Compiler | 29 | ||
| 2 Grundlegende Begriffe | 30 | ||
| 2.1 Das erste Programm | 30 | ||
| 2.2 Einfache Datentypen und Operatoren | 38 | ||
| 2.3 Gültigkeitsbereich und Sichtbarkeit | 57 | ||
| 2.4 Kontrollstrukturen | 60 | ||
| 2.5 Benutzerdefinierte und zusammengesetzte Datentypen | 84 | ||
| 3 Einfache Ein- und Ausgabe | 96 | ||
| 3.1 Standardein- und -ausgabe | 96 | ||
| 3.2 Ein- und Ausgabe mit Dateien | 99 | ||
| 4 Programmstrukturierung | 104 | ||
| 4.1 Funktionen | 104 | ||
| 4.2 Schnittstellen zum Datentransfer | 110 | ||
| 4.3 Grundsätze der modularen Gestaltung | 129 | ||
| 4.4 Funktionstemplates | 144 | ||
| 4.5 inline-Funktionen | 150 | ||
| 4.6 Standardfunktionen / Bibliotheken | 152 | ||
| 5 Objektorientierung 1 | 154 | ||
| 5.1 Abstrakte Datentypen | 154 | ||
| 5.2 Klassen und Objekte | 156 | ||
| 5.3 Initialisierung und Konstruktoren | 161 | ||
| 5.4 Beispiel: Klasse für rationale Zahlen | 170 | ||
| 5.5 const-Objekte und Methoden | 180 | ||
| 5.6 Faustregeln zur Konstruktion von Schnittstellen | 181 | ||
| 5.7 Destruktoren | 185 | ||
| 5.8 Wie kommt man zu Klassen und Objekten? Ein Beispiel | 187 | ||
| 5.9 Gegenseitige Abhängigkeit von Klassen | 194 | ||
| 6 Intermezzo: Zeiger | 198 | ||
| 6.1 Zeiger und Adressen | 198 | ||
| 6.2 C-Arrays | 202 | ||
| 6.3 C-Zeichenketten | 207 | ||
| 6.4 Dynamische Datenobjekte | 214 | ||
| 6.5 Zeiger und Funktionen | 220 | ||
| 6.6 Mehrdimensionale C-Arrays | 225 | ||
| 6.7 Binäre Ein-/Ausgabe | 232 | ||
| 6.8 Zeiger auf Funktionen | 236 | ||
| 6.9 Zeiger auf Elementfunktionen und -daten | 240 | ||
| 6.10 this-Zeiger | 242 | ||
| 6.11 Komplexe Deklarationen lesen | 243 | ||
| 7 Objektorientierung 2 | 246 | ||
| 7.1 Eine String-Klasse | 246 | ||
| 7.2 Klassenspezifische Daten und Funktionen | 254 | ||
| 7.3 Klassentemplates | 259 | ||
| 8 Vererbung | 270 | ||
| 8.1 Vererbung und Initialisierung | 277 | ||
| 8.2 Zugriffsschutz | 277 | ||
| 8.3 Typbeziehung zwischen Ober- und Unterklasse | 280 | ||
| 8.4 Code-Wiederverwendung | 281 | ||
| 8.5 Überschreiben von Funktionen in abgeleiteten Klassen | 283 | ||
| 8.6 Polymorphismus | 284 | ||
| 8.7 Vererbung und andere Beziehungen | 299 | ||
| 8.8 Mehrfachvererbung | 304 | ||
| 9 Überladen von Operatoren | 314 | ||
| 9.1 Rationale Zahlen – noch einmal | 316 | ||
| 9.2 Eine Klasse für Vektoren | 321 | ||
| 9.3 Zuweisungsoperator und Vererbung | 332 | ||
| 9.4 Inkrement-Operator ++ | 336 | ||
| 9.5 Typumwandlungsoperator | 340 | ||
| 9.6 Smart-Pointer: Operatoren -> und * | 342 | ||
| 9.7 Objekte als Funktionen | 349 | ||
| 10 Fehlerbehandlung | 352 | ||
| 10.1 Ausnahmebehandlung | 354 | ||
| 10.2 Speicherbeschaffung mit new | 366 | ||
| 11 Ein Werkzeugkasten | 370 | ||
| 11.1 Behälterklassen (Container) | 370 | ||
| 11.2 Listen | 374 | ||
| 11.3 Warteschlangen | 381 | ||
| 11.4 Iteratoren | 385 | ||
| 11.5 Sortierte Listen | 392 | ||
| 11.6 Binärer Suchbaum | 397 | ||
| 11.7 Trennung von Schnittstelle und Implementation | 403 | ||
| 11.8 Mehrdimensionale Matrizen | 408 | ||
| 11.9 Fehlersuche mit trace-Objekten | 415 | ||
| 12 Vermischtes | 424 | ||
| 12.1 Namensräume | 424 | ||
| 12.2 C++-Header | 427 | ||
| 12.3 Einbinden von C-Funktionen | 429 | ||
| 12.4 Standard-Typumwandlungen | 429 | ||
| 12.5 Standard-Typumwandlungsoperatoren | 431 | ||
| 12.6 Typinformationen zur Laufzeit | 434 | ||
| 12.7 Unions | 442 | ||
| 12.8 Bitfelder | 443 | ||
| 12.9 GUI-Programmierung | 444 | ||
| 12.10 Netzwerk-Programmierung | 446 | ||
| 13 Dateien und Ströme | 448 | ||
| 13.1 Ausgabe | 449 | ||
| 13.2 Eingabe | 455 | ||
| 13.3 Manipulatoren | 460 | ||
| 13.4 Fehlerbehandlung | 465 | ||
| 13.5 Typumwandlung von Dateiobjekten nach bool | 467 | ||
| 13.6 Arbeit mit Dateien | 468 | ||
| 13.7 Eingabe benutzerdefinierter Typen | 472 | ||
| Teil II Die C++-Standardbibliothek | 476 | ||
| 14 Aufbau und Übersicht | 478 | ||
| 14.1 Auslassungen | 480 | ||
| 14.2 Beispiele des Buchs und die C++-Standardbibliothek | 481 | ||
| 15 Hilfsfunktionen und -klassen | 484 | ||
| 15.1 Paare | 484 | ||
| 15.2 Funktionsobjekte | 485 | ||
| 16 Container | 490 | ||
| 16.1 Notation für Iteratoren und Bereiche | 491 | ||
| 16.2 Bitset | 492 | ||
| 16.3 Deque | 495 | ||
| 16.4 List | 498 | ||
| 16.5 Map | 501 | ||
| 16.6 Queue | 505 | ||
| 16.7 Set | 508 | ||
| 16.8 Stack | 512 | ||
| 16.9 Vector | 513 | ||
| 17 Iteratoren | 520 | ||
| 17.1 Iterator-Kategorien | 521 | ||
| 17.2 distance() und advance() | 523 | ||
| 17.3 Reverse-Iteratoren | 523 | ||
| 17.4 Insert-Iteratoren | 524 | ||
| 17.5 Stream-Iteratoren | 526 | ||
| 18 Algorithmen | 528 | ||
| 18.1 for_each | 528 | ||
| 18.2 find und find_if | 528 | ||
| 18.3 find_end | 529 | ||
| 18.4 find_first_of | 530 | ||
| 18.5 adjacent_find | 530 | ||
| 18.6 count und count_if | 531 | ||
| 18.7 mismatch | 531 | ||
| 18.8 equal | 532 | ||
| 18.9 search | 533 | ||
| 18.10 search_n | 533 | ||
| 18.11 copy und copy_backward | 534 | ||
| 18.12 swap, iter_swap und swap_ranges | 535 | ||
| 18.13 transform | 536 | ||
| 18.14 replace und Varianten | 537 | ||
| 18.15 fill und fill_n | 538 | ||
| 18.16 generate und generate_n | 538 | ||
| 18.17 remove und Varianten | 539 | ||
| 18.18 unique | 540 | ||
| 18.19 reverse | 541 | ||
| 18.20 rotate | 541 | ||
| 18.21 random_shuffle | 542 | ||
| 18.22 partition | 543 | ||
| 18.23 sort | 544 | ||
| 18.24 nth_element | 547 | ||
| 18.25 Binäre Suche | 548 | ||
| 18.26 Verschmelzen (Mischen) | 551 | ||
| 18.27 Mengenoperationen auf sortierten Strukturen | 554 | ||
| 18.28 Heap-Algorithmen | 559 | ||
| 18.29 Minimum und Maximum | 563 | ||
| 18.30 Lexikographischer Vergleich | 564 | ||
| 18.31 Permutationen | 565 | ||
| 19 Ein- und Ausgabe | 568 | ||
| 19.1 Ergänzungen | 569 | ||
| 20 Nationale Besonderheiten | 572 | ||
| 20.1 Sprachumgebungen festlegen und ändern | 572 | ||
| 20.2 Zeichenklassifizierung und -umwandlung | 574 | ||
| 20.3 Kategorien | 575 | ||
| 20.4 Konstruktion eigener Facetten | 586 | ||
| 21 Numerisches | 588 | ||
| 21.1 Komplexe Zahlen | 588 | ||
| 21.2 Grenzwerte von Zahltypen | 589 | ||
| 21.3 Halbnumerische Algorithmen | 591 | ||
| 21.4 Optimierte numerische Arrays (valarray) | 595 | ||
| 22 String | 612 | ||
| 23 Typerkennung zur Laufzeit | 622 | ||
| 24 Speichermanagement | 624 | ||
| 24.1 |
624 | ||
| 24.2 |
625 | ||
| 25 C-Header | 628 | ||
| 25.1 |
628 | ||
| 25.2 |
628 | ||
| 25.3 |
629 | ||
| 25.4 |
629 | ||
| 25.5 |
629 | ||
| 25.6 |
630 | ||
| 25.7 |
630 | ||
| 25.8 |
630 | ||
| 25.9 |
630 | ||
| 25.10 |
630 | ||
| 25.11 |
630 | ||
| 25.12 |
631 | ||
| 25.13 |
632 | ||
| 25.14 |
632 | ||
| 25.15 |
633 | ||
| 25.16 |
636 | ||
| 26 Nachwort | 640 | ||
| A Anhang | 642 | ||
| A.1 Programmierhinweise | 642 | ||
| A.2 Lösungen zu den Übungsaufgaben | 645 | ||
| A.3 Compilerbefehle | 706 | ||
| A.4 Make-Dateien | 707 | ||
| A.5 Die wichtigsten C++-Schlüsselwörter | 709 | ||
| A.6 ASCII-Tabelle | 709 | ||
| A.7 Rangfolge der Operatoren | 712 | ||
| Literaturverzeichnis | 714 | ||
| OOP-Glossar | 716 | ||
| Stichwortverzeichnis | 724 | ||
| Abbildungsverzeichnis | 750 | ||
| Tabellenverzeichnis | 752 | ||
| Mehr eBooks bei www.ciando.com | 0 |

