Bjarne Stroustrup
Eine Tour durch C++
Die kurze Einführung in den neuen Standrad C++11
Vorwort
12
1?Die Grundlagen
14
1.1?Einführung
14
1.2?Programme
14
1.3?Hello, World!
15
1.4?Funktionen
16
1.5?Typen, Variablen und Arithmetik
18
1.6?Gültigkeitsbereich und Lebensdauer
21
1.7?Konstanten
22
1.8?Zeiger, Arrays und Referenzen
23
1.9?Tests
26
1.10?Ratschläge
28
2?Benutzerdefinierte Typen
30
2.1?Einführung
30
2.2?Strukturen
30
2.3?Klassen
32
2.4?Unions
34
2.5?Aufzählungen
35
2.6?Ratschläge
36
3?Modularität
38
3.1?Einführung
38
3.2?Separate Kompilierung
39
3.3?Namespaces
41
3.4?Fehlerbehandlung
42
3.4.1?Ausnahmen
42
3.4.2?Invarianten
43
3.4.3?Statische Assertionen
45
3.5?Ratschläge
46
4?Klassen
48
4.1?Einführung
48
4.2?Konkrete Typen
49
4.2.1?Ein arithmetischer Typ
50
4.2.2?Ein Container
51
4.2.3?Container initialisieren
53
4.3?Abstrakte Typen
54
4.4?Virtuelle Funktionen
57
4.5?Klassenhierarchien
58
4.5.1?Explizites Überschreiben
60
4.5.2?Vorzüge von Hierarchien
61
4.5.3?Navigation in Hierarchien
63
4.5.4?Ressourcenlecks vermeiden
63
4.6?Kopieren und Verschieben
64
4.6.1?Container kopieren
65
4.6.2?Container verschieben
66
4.6.3?Wichtige Operationen
68
4.6.4?Ressourcenverwaltung
70
4.6.5?Operationen unterdrücken
72
4.7?Ratschläge
72
5?Templates
76
5.1?Einführung
76
5.2?Parametrisierte Typen
76
5.3?Funktions-Templates
78
5.4?Konzepte und generische Programmierung
79
5.5?Funktionsobjekte
81
5.6?Variadische Templates
83
5.7?Alias
84
5.8?Modell der Template-Kompilierung
85
5.9?Ratschläge
86
6?Überblick über die Bibliothek
88
6.1?Einführung
88
6.2?Komponenten der Standardbibliothek
89
6.3?Header und Namespace der Standardbibliothek
90
6.4?Ratschläge
91
7?Strings und reguläre Ausdrücke
92
7.1?Einführung
92
7.2?Strings
92
7.2.1?Eine string-Implementierung
94
7.3?Reguläre Ausdrücke
95
7.3.1?Suchen
96
7.3.2?Notation regulärer Ausdrücke
97
7.3.3?Iteratoren
101
7.4?Ratschläge
102
8?E/A-Streams
104
8.1?Einführung
104
8.2?Ausgabe
105
8.3?Eingabe
106
8.4?E/A-Status
108
8.5?Ein-/Ausgabe von benutzerdefinierten Typen
109
8.6?Formatierung
110
8.7?File Streams
111
8.8?String-Streams
112
8.9?Ratschläge
113
9?Container
116
9.1?Einführung
116
9.2?vector
116
9.2.1?Elemente
119
9.2.2?Bereichsüberprüfung
119
9.3?list
121
9.4?map
122
9.5?unordered_map
123
9.6?Überblick über Container
124
9.7?Ratschläge
126
10?Algorithmen
128
10.1?Einführung
128
10.2?Iteratoren verwenden
129
10.3?Iteratortypen
132
10.4?Stream-Iteratoren
133
10.5?Prädikate
135
10.6?Überblick über Algorithmen
135
10.7?Containeralgorithmen
136
10.8?Ratschläge
137
11?Utilities
138
11.1?Einführung
138
11.2?Ressourcenverwaltung
138
11.2.1?unique_ptr und shared_ptr
139
11.3?Spezialisierte Container
142
11.3.1?array
143
11.3.2?bitset
144
11.3.3?pair und tuple
145
11.4?Zeit
147
11.5?Funktionsadapter
147
11.5.1?bind()
148
11.5.2?mem_fn()
148
11.5.3?function
149
11.6?Typfunktionen
150
11.6.1?iterator_traits
151
11.6.2?Typprädikate
153
11.7?Ratschläge
153
12?Numerik
156
12.1?Einführung
156
12.2?Mathematische Funktionen
156
12.3?Numerische Algorithmen
157
12.4?Komplexe Zahlen
158
12.5?Zufallszahlen
159
12.6?Vektorarithmetik
161
12.7?Numerische Grenzen
161
12.8?Ratschläge
162
13?Nebenläufigkeit
164
13.1?Einführung
164
13.2?Tasks und Threads
165
13.3?Argumente übergeben
166
13.4?Ergebnisse zurückgeben
167
13.5?Daten gemeinsam nutzen
167
13.6?Warten auf Ereignisse
169
13.7?Kommunizierende Tasks
171
13.7.1?future und promise
171
13.7.2?packaged_task
172
13.7.3?async()
173
13.8?Ratschläge
174
14?Geschichte und Kompatibilität
176
14.1?Historische Anmerkungen
176
14.1.1?Chronik
177
14.1.2?Die frühen Jahre
178
14.1.3?Die ISO-C++-Standards
180
14.2?C++11-Erweiterungen
182
14.2.1?Sprachfeatures
182
14.2.2?Komponenten der Standardbibliothek
183
14.2.3?Veraltete Features
184
14.2.4?Typumwandlungen
185
14.3?C/C++-Kompatibilität
186
14.3.1?C und C++ sind Geschwister
186
14.3.2 Kompatibilitätsprobleme
188
14.3.2.1?Stilprobleme
188
14.3.2.2?void*
190
14.3.2.3?C++-Schlüsselwörter
190
14.3.2.4?Bindung
191
14.4?Literaturhinweise
191
14.5?Ratschläge
194
Index
196
© 2009-2024 ciando GmbH