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

C++ Core Guidelines und Techniken für guten Code

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.

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

15. Vererbung ... 417

15.1 ... Beziehungen ... 418
15.2 ... Vererbung in C++ ... 421
15.3 ... Hat-ein versus ist-ein ... 422
15.4 ... Gemeinsamkeiten finden ... 422
15.5 ... Abgeleitete Typen erweitern ... 425
15.6 ... Methoden überschreiben ... 426
15.7 ... Wie Methoden funktionieren ... 427
15.8 ... Virtuelle Methoden ... 429
15.9 ... Konstruktoren in Klassenhierarchien ... 431
1…
Titel
C++
Untertitel
Das umfassende Handbuch
EAN
9783836298551
Format
E-Book (epub)
Hersteller
Veröffentlichung
06.06.2024
Digitaler Kopierschutz
frei
Dateigrösse
6 MB
Anzahl Seiten
1172
Lesemotiv