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 |