

Beschreibung
Das Handbuch für moderne C++-EntwicklungDieses umfassende Nachschlagewerk führt Sie in die moderne C++-Entwicklung ein. Lernen Sie, Software mit hohen Ansprüchen an Funktionalität, Effizienz und Sicherheit zu entwickeln. Ausführlich werden der Sprachkern, die ...Das Handbuch für moderne C++-EntwicklungDieses umfassende Nachschlagewerk führt Sie in die moderne C++-Entwicklung ein. Lernen Sie, Software mit hohen Ansprüchen an Funktionalität, Effizienz und Sicherheit zu entwickeln. Ausführlich werden der Sprachkern, die objektorientierte Programmierung und die Standardbibliothek behandelt. Sie lernen zum Beispiel, mit Streams umzugehen, Containertypen zu nutzen und nebenläufige Anwendungen zu entwickeln. Nicht zuletzt geht es dem Autor Torsten T. Will um das Wie: Freuen Sie sich auf ein Lehrbuch über die Konzepte des Modern C++, die C++ Core Guidelines, Sprachversionen und vor allem über guten Code.Das Lehr- und Nachschlagewerk zu Modern C++, zum aktuellen Standard C++23Spachgrundlagen, OOP, Standardbibliothek, GUI-Programmierung u. v. m.Mit Guidelines und Techniken für gutes Coden Aus dem Inhalt:SprachgrundlagenFehlerbehandlungObjektorientierte ProgrammierungZeigerSchnittstelle zu CTemplatesContainerStandardbibliothekC++ Core GuidelinesExtra: Tutorials zum Thema guter Code
»Wertvoller Ressourcenpool und eine solide Grundlage für die Entwicklung effizienter und sicherer Software. Ein Muss für jede technische Bibliothek.«
Vorwort
Das umfassende Handbuch zu Modern C++. Über 1.000 Seiten Profiwissen, aktuell zum Standard C++23
Autorentext
Torsten T. Will, Jahrgang 1970, beschäftigte sich bereits während seines Diploms in Informatik mit Programmiersprachen und ihren Konzepten. C++ hat ihn schon in seinen Anfängen fasziniert und begleitet. Andere Programmierprojekte bewältigte er vor allem in Pascal, Java, Scala und Python. Seit 2004 schreibt er im Fachmagazin c't gelegentlich über C++ und Python. Was dann noch an Zeit übrig bleibt, geht in die Fotografie.
Klappentext
Dieses Standardwerk führt Sie in die moderne C++-Entwicklung ein. Entwickeln Sie Software mit hohen Ansprüchen an Funktionalität, Effizienz und Sicherheit. Ausführlich werden der Sprachkern, die objektorientierte Programmierung und die Standardbibliothek behandelt. Sie lernen zum Beispiel, mit Streams umzugehen, Containertypen zu nutzen und nebenläufige Anwendungen zu entwicklen.Nicht zuletzt geht es dem Autor um das Wie: Freuen Sie sich auf ein Lehrbuch über die Konzepte des Modern C++, die C++ Core Guidelines, Sprachversionen und vor allem über guten Code. Aus dem Inhalt: Sprachgrundlagen Fehlerbehandlung Objektorientierte Programmierung Zeiger Schnittstelle zu C Templates Container Standardbibliothek C++ Core Guidelines Extra: Tutorials zum Thema "guter Code"
Inhalt
Vorwort ... 25
TEIL I. Grundlagen ... 29
1. Das C++-Handbuch ... 31
1.1 ... Neu und modern ... 32
1.2 ... »Dan«-Kapitel ... 32
1.3 ... Darstellung in diesem Buch ... 33
1.4 ... Verwendete Formatierungen ... 33
1.5 ... Sorry for my Denglish ... 34
2. Programmieren in C++ ... 37
2.1 ... Übersetzen ... 38
2.2 ... Übersetzungsphasen ... 39
2.3 ... Aktuelle Compiler ... 40
2.4 ... Entwicklungsumgebungen ... 41
2.5 ... Die Kommandozeile unter Ubuntu ... 43
2.6 ... Die IDE »Visual Studio Code« unter Windows ... 47
2.7 ... Das Beispielprogramm beschleunigen ... 54
3. C++ für Umsteiger ... 55
4. Die Grundbausteine von C++ ... 63
4.1 ... Ein schneller Überblick ... 66
4.2 ... Ohne Eile erklärt ... 71
4.3 ... Operatoren ... 100
4.4 ... Eingebaute Datentypen ... 116
4.5 ... Undefiniertes und unspezifiziertes Verhalten ... 157
5. Guter Code, 1. Dan: Lesbar programmieren ... 159
5.1 ... Kommentare ... 160
5.2 ... Dokumentation ... 160
5.3 ... Einrückungen und Zeilenlänge ... 161
5.4 ... Zeilen pro Funktion und Datei ... 162
5.5 ... Klammern und Leerzeichen ... 163
5.6 ... Namen ... 164
6. Höhere Datentypen ... 167
6.1 ... Der Zeichenkettentyp »string« ... 168
6.2 ... Streams ... 174
6.3 ... Behälter und Zeiger ... 181
6.4 ... Die einfachen Sequenzcontainer ... 183
6.5 ... Algorithmen ... 189
6.6 ... Zeiger und C-Arrays ... 189
7. Funktionen ... 191
7.1 ... Deklaration und Definition einer Funktion ... 192
7.2 ... Funktionstyp ... 193
7.3 ... Funktionen verwenden ... 194
7.4 ... Eine Funktion definieren ... 195
7.5 ... Mehr zu Parametern ... 197
7.6 ... Funktionskörper ... 201
7.7 ... Parameter umwandeln ... 203
7.8 ... Funktionen überladen ... 205
7.9 ... Defaultparameter ... 208
7.10 ... Beliebig viele Argumente ... 209
7.11 ... Alternative Schreibweise zur Funktionsdeklaration ... 210
7.12 ... Spezialitäten ... 211
8. Anweisungen im Detail ... 215
8.1 ... Der Anweisungsblock ... 218
8.2 ... Die leere Anweisung ... 221
8.3 ... Deklarationsanweisung ... 221
8.4 ... Die Ausdrucksanweisung ... 224
8.5 ... Die »if«-Anweisung ... 224
8.6 ... Die »while«-Schleife ... 229
8.7 ... Die »do-while«-Schleife ... 231
8.8 ... Die »for«-Schleife ... 232
8.9 ... Die bereichsbasierte »for«-Schleife ... 234
8.10 ... Die »switch«-Verzweigung ... 236
8.11 ... Die »break«-Anweisung ... 240
8.12 ... Die »continue«-Anweisung ... 241
8.13 ... Die »return«-Anweisung ... 242
8.14 ... Die »goto«-Anweisung ... 243
8.15 ... Der »try-catch«-Block und »throw« ... 245
8.16 ... Zusammenfassung ... 247
9. Ausdrücke im Detail ... 249
9.1 ... Berechnungen und Seiteneffekte ... 250
9.2 ... Arten von Ausdrücken ... 251
9.3 ... Literale ... 253
9.4 ... Bezeichner ... 253
9.5 ... Klammern ... 254
9.6 ... Funktionsaufruf und Indexzugriff ... 254
9.7 ... Zuweisung ... 255
9.8 ... Typumwandlung ... 257
10. Fehlerbehandlung ... 259
10.1 ... Fehlerbehandlung mit Fehlercodes ... 261
10.2 ... Was ist eine Ausnahme? ... 264
10.3 ... Kleinere Fehlerbehandlungen ... 267
10.4 ... Weiterwerfen -- »rethrow« ... 268
10.5 ... Die Reihenfolge im »catch« ... 268
10.6 ... Typen für Exceptions ... 271
10.7 ... Wenn eine Exception aus »main« herausfällt ... 272
11. Guter Code, 2. Dan: Modularisierung ... 273
11.1 ... Programm, Bibliothek, Objektdatei ... 273
11.2 ... Bausteine ... 274
11.3 ... Trennen der Funktionalitäten ... 275
11.4 ... Ein modulares Beispielprojekt ... 277
TEIL II. Objektorientierte Programmierung und mehr ... 289
12. Von der Struktur zur Klasse ... 291
12.1 ... Initialisierung ... 294
12.2 ... Rückgabe eigener Typen ... 295
12.3 ... Methoden statt Funktionen ... 297
12.4 ... Das bessere »drucke« ... 300
12.5 ... Eine Ausgabe wie jede andere ... 302
12.6 ... Methoden inline definieren ... 303
12.7 ... Implementierung und Definition trennen ... 304
12.8 ... Initialisierung per Konstruktor ... 305
12.9 ... Struktur oder Klasse? ... 313
12.10 ... Zwischenergebnis ... 318
12.11 ... Eigene Datentypen verwenden ... 318
12.12 ... Typinferenz mit »auto« ... 335
12.13 ... Eigene Klassen in Standardcontainern ... 339
13. Namensräume und Qualifizierer ... 343
13.1 ... Der Namensraum »std« ... 344
13.2 ... Anonymer Namensraum ... 347
13.3 ... »static« macht lokal ... 349
13.4 ... »static« teilt gern ... 350
13.5 ... Ferne Initialisierung oder »static inline«-Datenfelder ... 353
13.6 ... Garantiert zur Compilezeit initialisiert mit »constinit« ... 354
13.7 ... »static« macht dauerhaft ... 354
13.8 ... »inline namespace« ... 356
13.9 ... Zusammenfassung ... 358
13.10 ... »const« ... 358
13.11 ... Flüchtig mit »volatile« ... 380
14. Guter Code, 3. Dan: Testen ... 383
14.1 ... Arten des Tests ... 383
14.2 ... Frameworks ... 391
14.3 ... Boost.Test ... 396
14.4 ... Hilfsmakros für Assertions ... 400
14.5 ... Ein Beispielprojekt mit Unittests ... 403 …