Dekorationsartikel gehören nicht zum Leistungsumfang.
Sprache:
Deutsch
19,90 €*
Versandkostenfrei per Post / DHL
auf Lager, Lieferzeit 1-2 Werktage
Kategorien:
Beschreibung
Dieser Grundkurs ist genau das Richtige für alle, die einen schnellen Einstieg in die Programmiersprache C++ und einen Überblick über die Grundlagen ohne viel Beiwerk suchen. Ausführlich und jederzeit verständlich erklären Martin Guddat und Jürgen Wolf alles, was notwendig ist, damit Sie modernes C++ lernen und objektorientiert programmieren können. Von der ersten Seite an geht es sofort los mit einfachen Programmen bis hin zur Entwicklung komplexerer Anwendungen. Übungen am Ende jedes Kapitels helfen Einsteiger*innen und vor allem Selbstlerner*innen beim Verstehen der Sprache. Die kompakte Darstellung macht das Buch zu einer unverzichtbaren Referenz für die Arbeit mit [...] fünfte Auflage wurde umfassend überarbeitet und [...] Buch eignet sich hervorragend als Begleiter für das Studium der Informatik und anderer technischer Fächer.
Aus dem Inhalt:
Das erste Programm in C++
Basisdatentypen
Typumwandlung
Verzweigungen
Schleifen
Funktionen
Präprozessor-Direktiven
Arrays und Zeichenketten (Strings)
Zeiger (Pointer)
Dynamische Speicherobjekte und Strukturen
Namensräume
Modulare Programmierung
Klassen und Objekte
Vererbung
Operatoren überladen
Templates
Exceptionhandling (Fehlerbehandlung)
Modernes C++ bis C++23
Aus dem Inhalt:
Das erste Programm in C++
Basisdatentypen
Typumwandlung
Verzweigungen
Schleifen
Funktionen
Präprozessor-Direktiven
Arrays und Zeichenketten (Strings)
Zeiger (Pointer)
Dynamische Speicherobjekte und Strukturen
Namensräume
Modulare Programmierung
Klassen und Objekte
Vererbung
Operatoren überladen
Templates
Exceptionhandling (Fehlerbehandlung)
Modernes C++ bis C++23
Dieser Grundkurs ist genau das Richtige für alle, die einen schnellen Einstieg in die Programmiersprache C++ und einen Überblick über die Grundlagen ohne viel Beiwerk suchen. Ausführlich und jederzeit verständlich erklären Martin Guddat und Jürgen Wolf alles, was notwendig ist, damit Sie modernes C++ lernen und objektorientiert programmieren können. Von der ersten Seite an geht es sofort los mit einfachen Programmen bis hin zur Entwicklung komplexerer Anwendungen. Übungen am Ende jedes Kapitels helfen Einsteiger*innen und vor allem Selbstlerner*innen beim Verstehen der Sprache. Die kompakte Darstellung macht das Buch zu einer unverzichtbaren Referenz für die Arbeit mit [...] fünfte Auflage wurde umfassend überarbeitet und [...] Buch eignet sich hervorragend als Begleiter für das Studium der Informatik und anderer technischer Fächer.
Aus dem Inhalt:
Das erste Programm in C++
Basisdatentypen
Typumwandlung
Verzweigungen
Schleifen
Funktionen
Präprozessor-Direktiven
Arrays und Zeichenketten (Strings)
Zeiger (Pointer)
Dynamische Speicherobjekte und Strukturen
Namensräume
Modulare Programmierung
Klassen und Objekte
Vererbung
Operatoren überladen
Templates
Exceptionhandling (Fehlerbehandlung)
Modernes C++ bis C++23
Aus dem Inhalt:
Das erste Programm in C++
Basisdatentypen
Typumwandlung
Verzweigungen
Schleifen
Funktionen
Präprozessor-Direktiven
Arrays und Zeichenketten (Strings)
Zeiger (Pointer)
Dynamische Speicherobjekte und Strukturen
Namensräume
Modulare Programmierung
Klassen und Objekte
Vererbung
Operatoren überladen
Templates
Exceptionhandling (Fehlerbehandlung)
Modernes C++ bis C++23
Über den Autor
Jürgen Wolf ist seit über 20 Jahren Autor und seit mehr als 10 Jahren passionierter Digitalfotograf. Seine Buchthemen sind Bildbearbeitung, Fotografie, Webentwicklung, Betriebssysteme und Programmierung. Und egal welches Thema: Bei jedem Buch ist es sein Ziel, auch komplexe Zusammenhänge klar und verständlich zu erklären.
Inhaltsverzeichnis
1. Einstieg in die Welt von C++ ... 19
1.1 ... Der C++-Standard ... 19
1.2 ... Die nötigen Werkzeuge für C++ ... 20
1.3 ... Übersetzen mit g++ und clang++ ... 24
1.4 ... Übersetzen mit einer Entwicklungsumgebung ... 26
1.5 ... Listings zum Buch ... 30
1.6 ... Kontrollfragen und Aufgaben im Buch ... 30
1.7 ... Aufgabe ... 30
1.8 ... Aufgabe zu C++ 23 ... 31
2. Erste Schritte in C++ ... 33
2.1 ... Das erste Programm in C++ ... 33
2.2 ... Anweisungen und Ausdrücke ... 35
2.3 ... Die Standardeingabe- und -ausgabestreams ... 37
2.4 ... Einige Begriffe zu C++ ... 43
2.5 ... Kontrollfragen und Aufgaben ... 45
3. Die eingebauten C++-Basisdatentypen ... 46
3.1 ... Variablen ... 46
3.2 ... Definition und Deklaration von Variablen ... 47
3.3 ... Initialisierung und Zuweisung von Werten ... 48
3.4 ... Ganzzahltypen ... 51
3.5 ... Ganzzahldatentyp für Zeichen ... 58
3.6 ... Fließkommazahlentypen ... 68
3.7 ... Der 'auto'-Typ ... 71
3.8 ... Konstanten ... 72
3.9 ... Die Byte-Größe mit dem 'sizeof'-Operator ... 73
3.10 ... Limits für die Basisdatentypen ... 74
3.11 ... Kontrollfragen und Aufgaben ... 77
4. Arbeiten mit den eingebauten Typen ... 78
4.1 ... Arithmetische Operatoren ... 78
4.2 ... Ungenaue Fließkommazahlen ... 86
4.3 ... Typumwandlung ... 88
4.4 ... Formatierte Ausgabe von Werten ... 94
4.5 ... Kontrollfragen und Aufgaben ... 95
5. Kontrollstrukturen ... 97
5.1 ... Der eingebaute Datentyp 'bool' ... 97
5.2 ... Vergleichsoperatoren ... 98
5.3 ... Bedingte Anweisung mit 'if' ... 101
5.4 ... Anweisungsblock für Kontrollstrukturen ... 102
5.5 ... Alternative 'else'-Verzweigung ... 103
5.6 ... Bedingte Anweisung mit Initialisierung ... 105
5.7 ... Mehrfache Verzweigung ... 105
5.8 ... Der Bedingungsoperator '?:' ... 108
5.9 ... Logische Operatoren ... 109
5.10 ... Die Fallunterscheidung -- 'switch' ... 111
5.11 ... Die kopfgesteuerte 'while'-Schleife ... 114
5.12 ... Die fußgesteuerte 'do-while'-Schleife ... 116
5.13 ... Die Zählschleife 'for' ... 117
5.14 ... Kontrollierte Sprunganweisungen ... 121
5.15 ... Kontrollfragen und Aufgaben ... 123
6. Arrays und Strings ... 125
6.1 ... Arrays ... 125
6.2 ... Strings in C++ ... 139
6.3 ... Kontrollfragen und Aufgaben ... 145
7. Referenzen und Zeiger ... 146
7.1 ... Referenzen ... 146
7.2 ... Zeiger ... 149
7.3 ... Kontrollfragen und Aufgaben ... 158
8. Funktionen ... 160
8.1 ... Grundlegendes zu Funktionen ... 160
8.2 ... Referenzen als Parameter und Rückgabe ... 180
8.3 ... Zeiger als Parameter und Rückgabewert ... 187
8.4 ... Übergabe großer Elemente als Funktionsparameter ... 188
8.5 ... C-Arrays oder C-Strings als Funktionsparameter ... 190
8.6 ... Kontrollfragen und Aufgaben ... 191
9. Modularisierung und Präprozessor ... 193
9.1 ... Präprozessor-Direktiven ... 193
9.2 ... Modulare Programmierung ... 199
9.3 ... Namensräume ... 205
9.4 ... Spezifizierer und Qualifikatoren ... 217
9.5 ... Kontrollfragen und Aufgaben ... 223
10. Strukturen, Aufzählungen und dynamische Speicherobjekte ... 226
10.1 ... Erste eigene Datentypen mit Strukturen ... 226
10.2 ... Der Aufzählungstyp 'enum' ... 235
10.3 ... Eigene Namen mit 'using' ... 237
10.4 ... Dynamische Speicherobjekte ... 238
10.5 ... Kontrollfragen und Aufgaben ... 249
11. Klassen ... 250
11.1 ... Klassen ... 250
11.2 ... Konstruktoren ... 264
11.3 ... Destruktoren ... 281
11.4 ... Weitere Formen von Methoden ... 286
11.5 ... Kontrollfragen und Aufgaben ... 295
12. Objekte und Klassenelemente ... 297
12.1 ... Objekt als Parameter ... 297
12.2 ... Freundfunktionen ('friend') ... 302
12.3 ... Objekte einer Klasse als Rückgabewerte ... 304
12.4 ... Arrays von Objekten ... 310
12.5 ... Dynamische Objekte ... 311
12.6 ... Klassenobjekte als Klassenattribute ... 313
12.7 ... Eine Containerklasse als Klassenattribut ... 318
12.8 ... Smart Pointer als Klassenattribut ... 321
12.9 ... Statische und konstante Klassenelemente ... 325
12.10 ... Die Nullregel (Rule of Zero) ... 333
12.11 ... Kontrollfragen und Aufgaben ... 336
13. Operatoren überladen ... 338
13.1 ... Das Schlüsselwort 'operator' ... 340
13.2 ... Zweistellige (arithmetische) Operatoren überladen ... 341
13.3 ... Einstellige Operatoren überladen ... 348
13.4 ... Den Zuweisungsoperator überladen ... 352
13.5 ... Ausgabe- und Eingabeoperatoren überladen ... 357
13.6 ... Vergleichsoperatoren ... 361
13.7 ... Weitere Operatorüberladungen ... 364
13.8 ... Konvertierungsoperatoren ... 364
13.9 ... Kontrollfragen und Aufgaben ... 368
14. Vererbung (Abgeleitete Klassen) ... 370
14.1 ... Die Vorbereitung ... 371
14.2 ... Das Ableiten einer Klasse ... 373
14.3 ... Kontrollfragen und Aufgaben ... 393
15. Templates ... 395
15.1 ... Funktionstemplates ... 395
15.2 ... Klassentemplates ... 405
15.3 ... Kontrollfragen und Aufgaben ... 411
16. Ausnahmebehandlung (Fehlerbehandlung) ... 413
16.1 ... Grundlagen der Fehlerbehandlung ... 413
16.2 ... Eine Ausnahme auslösen ... 415
16.3 ... Eine Ausnahme auffangen und behandeln ... 416
16.4 ... Standardausnahmen (Fehlerklassen) ... 426
16.5 ... Die Alternative 'std::expected' ... 431
16.6 ... Vermeidung von Fehlern mit [[nodiscard]] ... 433
16.7 ... Fehlerdiagnose mit 'std::source_location' ... 434
16.8 ... Kontrollfragen ... 435
17. Ein-/Ausgabestreams für Dateien ... 436
17.1 ... Der Umgang mit Dateien in C++ ... 436
17.2 ... Verschiedene Streams für Dateien ... 436
17.3 ... Eine Datei öffnen und schließen ... 437
17.4 ... Mit 'std::filesystem' arbeiten ... 449
17.5 ... Kontrollfragen und Aufgaben ... 450
18. Die Standardbibliothek und weitere Sprachelemente ... 452
18.1 ... Die Container der Standardbibliothek ... 452
18.2 ... Algorithmen der Standardbibliothek ... 465
18.3 ... Fortgeschrittene Sprachelemente ... 468
18.4 ... Fortgeschrittene Funktionskonzepte ... 473
18.5 ... Smart Pointer ... 483
18.6 ... Textansichten und Formatierung ... 494
18.7 ... Die Zeitbibliothek ... 501
18.8 ... Ausblick auf das Multithreading ... 507
Anhang ... 509
A ... Lösungen der Übungsaufgaben ... 509
Index ... 533
1.1 ... Der C++-Standard ... 19
1.2 ... Die nötigen Werkzeuge für C++ ... 20
1.3 ... Übersetzen mit g++ und clang++ ... 24
1.4 ... Übersetzen mit einer Entwicklungsumgebung ... 26
1.5 ... Listings zum Buch ... 30
1.6 ... Kontrollfragen und Aufgaben im Buch ... 30
1.7 ... Aufgabe ... 30
1.8 ... Aufgabe zu C++ 23 ... 31
2. Erste Schritte in C++ ... 33
2.1 ... Das erste Programm in C++ ... 33
2.2 ... Anweisungen und Ausdrücke ... 35
2.3 ... Die Standardeingabe- und -ausgabestreams ... 37
2.4 ... Einige Begriffe zu C++ ... 43
2.5 ... Kontrollfragen und Aufgaben ... 45
3. Die eingebauten C++-Basisdatentypen ... 46
3.1 ... Variablen ... 46
3.2 ... Definition und Deklaration von Variablen ... 47
3.3 ... Initialisierung und Zuweisung von Werten ... 48
3.4 ... Ganzzahltypen ... 51
3.5 ... Ganzzahldatentyp für Zeichen ... 58
3.6 ... Fließkommazahlentypen ... 68
3.7 ... Der 'auto'-Typ ... 71
3.8 ... Konstanten ... 72
3.9 ... Die Byte-Größe mit dem 'sizeof'-Operator ... 73
3.10 ... Limits für die Basisdatentypen ... 74
3.11 ... Kontrollfragen und Aufgaben ... 77
4. Arbeiten mit den eingebauten Typen ... 78
4.1 ... Arithmetische Operatoren ... 78
4.2 ... Ungenaue Fließkommazahlen ... 86
4.3 ... Typumwandlung ... 88
4.4 ... Formatierte Ausgabe von Werten ... 94
4.5 ... Kontrollfragen und Aufgaben ... 95
5. Kontrollstrukturen ... 97
5.1 ... Der eingebaute Datentyp 'bool' ... 97
5.2 ... Vergleichsoperatoren ... 98
5.3 ... Bedingte Anweisung mit 'if' ... 101
5.4 ... Anweisungsblock für Kontrollstrukturen ... 102
5.5 ... Alternative 'else'-Verzweigung ... 103
5.6 ... Bedingte Anweisung mit Initialisierung ... 105
5.7 ... Mehrfache Verzweigung ... 105
5.8 ... Der Bedingungsoperator '?:' ... 108
5.9 ... Logische Operatoren ... 109
5.10 ... Die Fallunterscheidung -- 'switch' ... 111
5.11 ... Die kopfgesteuerte 'while'-Schleife ... 114
5.12 ... Die fußgesteuerte 'do-while'-Schleife ... 116
5.13 ... Die Zählschleife 'for' ... 117
5.14 ... Kontrollierte Sprunganweisungen ... 121
5.15 ... Kontrollfragen und Aufgaben ... 123
6. Arrays und Strings ... 125
6.1 ... Arrays ... 125
6.2 ... Strings in C++ ... 139
6.3 ... Kontrollfragen und Aufgaben ... 145
7. Referenzen und Zeiger ... 146
7.1 ... Referenzen ... 146
7.2 ... Zeiger ... 149
7.3 ... Kontrollfragen und Aufgaben ... 158
8. Funktionen ... 160
8.1 ... Grundlegendes zu Funktionen ... 160
8.2 ... Referenzen als Parameter und Rückgabe ... 180
8.3 ... Zeiger als Parameter und Rückgabewert ... 187
8.4 ... Übergabe großer Elemente als Funktionsparameter ... 188
8.5 ... C-Arrays oder C-Strings als Funktionsparameter ... 190
8.6 ... Kontrollfragen und Aufgaben ... 191
9. Modularisierung und Präprozessor ... 193
9.1 ... Präprozessor-Direktiven ... 193
9.2 ... Modulare Programmierung ... 199
9.3 ... Namensräume ... 205
9.4 ... Spezifizierer und Qualifikatoren ... 217
9.5 ... Kontrollfragen und Aufgaben ... 223
10. Strukturen, Aufzählungen und dynamische Speicherobjekte ... 226
10.1 ... Erste eigene Datentypen mit Strukturen ... 226
10.2 ... Der Aufzählungstyp 'enum' ... 235
10.3 ... Eigene Namen mit 'using' ... 237
10.4 ... Dynamische Speicherobjekte ... 238
10.5 ... Kontrollfragen und Aufgaben ... 249
11. Klassen ... 250
11.1 ... Klassen ... 250
11.2 ... Konstruktoren ... 264
11.3 ... Destruktoren ... 281
11.4 ... Weitere Formen von Methoden ... 286
11.5 ... Kontrollfragen und Aufgaben ... 295
12. Objekte und Klassenelemente ... 297
12.1 ... Objekt als Parameter ... 297
12.2 ... Freundfunktionen ('friend') ... 302
12.3 ... Objekte einer Klasse als Rückgabewerte ... 304
12.4 ... Arrays von Objekten ... 310
12.5 ... Dynamische Objekte ... 311
12.6 ... Klassenobjekte als Klassenattribute ... 313
12.7 ... Eine Containerklasse als Klassenattribut ... 318
12.8 ... Smart Pointer als Klassenattribut ... 321
12.9 ... Statische und konstante Klassenelemente ... 325
12.10 ... Die Nullregel (Rule of Zero) ... 333
12.11 ... Kontrollfragen und Aufgaben ... 336
13. Operatoren überladen ... 338
13.1 ... Das Schlüsselwort 'operator' ... 340
13.2 ... Zweistellige (arithmetische) Operatoren überladen ... 341
13.3 ... Einstellige Operatoren überladen ... 348
13.4 ... Den Zuweisungsoperator überladen ... 352
13.5 ... Ausgabe- und Eingabeoperatoren überladen ... 357
13.6 ... Vergleichsoperatoren ... 361
13.7 ... Weitere Operatorüberladungen ... 364
13.8 ... Konvertierungsoperatoren ... 364
13.9 ... Kontrollfragen und Aufgaben ... 368
14. Vererbung (Abgeleitete Klassen) ... 370
14.1 ... Die Vorbereitung ... 371
14.2 ... Das Ableiten einer Klasse ... 373
14.3 ... Kontrollfragen und Aufgaben ... 393
15. Templates ... 395
15.1 ... Funktionstemplates ... 395
15.2 ... Klassentemplates ... 405
15.3 ... Kontrollfragen und Aufgaben ... 411
16. Ausnahmebehandlung (Fehlerbehandlung) ... 413
16.1 ... Grundlagen der Fehlerbehandlung ... 413
16.2 ... Eine Ausnahme auslösen ... 415
16.3 ... Eine Ausnahme auffangen und behandeln ... 416
16.4 ... Standardausnahmen (Fehlerklassen) ... 426
16.5 ... Die Alternative 'std::expected' ... 431
16.6 ... Vermeidung von Fehlern mit [[nodiscard]] ... 433
16.7 ... Fehlerdiagnose mit 'std::source_location' ... 434
16.8 ... Kontrollfragen ... 435
17. Ein-/Ausgabestreams für Dateien ... 436
17.1 ... Der Umgang mit Dateien in C++ ... 436
17.2 ... Verschiedene Streams für Dateien ... 436
17.3 ... Eine Datei öffnen und schließen ... 437
17.4 ... Mit 'std::filesystem' arbeiten ... 449
17.5 ... Kontrollfragen und Aufgaben ... 450
18. Die Standardbibliothek und weitere Sprachelemente ... 452
18.1 ... Die Container der Standardbibliothek ... 452
18.2 ... Algorithmen der Standardbibliothek ... 465
18.3 ... Fortgeschrittene Sprachelemente ... 468
18.4 ... Fortgeschrittene Funktionskonzepte ... 473
18.5 ... Smart Pointer ... 483
18.6 ... Textansichten und Formatierung ... 494
18.7 ... Die Zeitbibliothek ... 501
18.8 ... Ausblick auf das Multithreading ... 507
Anhang ... 509
A ... Lösungen der Übungsaufgaben ... 509
Index ... 533
Details
Erscheinungsjahr: | 2025 |
---|---|
Fachbereich: | Programmiersprachen |
Genre: | Informatik, Mathematik, Medizin, Naturwissenschaften, Technik |
Rubrik: | Naturwissenschaften & Technik |
Medium: | Taschenbuch |
Reihe: | Rheinwerk Computing |
Inhalt: | 542 S. |
ISBN-13: | 9783367104529 |
ISBN-10: | 3367104523 |
Sprache: | Deutsch |
Einband: | Klappenbroschur |
Autor: |
Wolf, Jürgen
Guddat, Martin |
Auflage: | 5. Auflage |
Hersteller: | Rheinwerk Verlag GmbH |
Verantwortliche Person für die EU: | Rheinwerk Verlag GmbH, Rheinwerkallee 4, D-53227 Bonn, service@rheinwerk-verlag.de |
Maße: | 188 x 122 x 32 mm |
Von/Mit: | Jürgen Wolf (u. a.) |
Erscheinungsdatum: | 06.06.2025 |
Gewicht: | 0,598 kg |
Über den Autor
Jürgen Wolf ist seit über 20 Jahren Autor und seit mehr als 10 Jahren passionierter Digitalfotograf. Seine Buchthemen sind Bildbearbeitung, Fotografie, Webentwicklung, Betriebssysteme und Programmierung. Und egal welches Thema: Bei jedem Buch ist es sein Ziel, auch komplexe Zusammenhänge klar und verständlich zu erklären.
Inhaltsverzeichnis
1. Einstieg in die Welt von C++ ... 19
1.1 ... Der C++-Standard ... 19
1.2 ... Die nötigen Werkzeuge für C++ ... 20
1.3 ... Übersetzen mit g++ und clang++ ... 24
1.4 ... Übersetzen mit einer Entwicklungsumgebung ... 26
1.5 ... Listings zum Buch ... 30
1.6 ... Kontrollfragen und Aufgaben im Buch ... 30
1.7 ... Aufgabe ... 30
1.8 ... Aufgabe zu C++ 23 ... 31
2. Erste Schritte in C++ ... 33
2.1 ... Das erste Programm in C++ ... 33
2.2 ... Anweisungen und Ausdrücke ... 35
2.3 ... Die Standardeingabe- und -ausgabestreams ... 37
2.4 ... Einige Begriffe zu C++ ... 43
2.5 ... Kontrollfragen und Aufgaben ... 45
3. Die eingebauten C++-Basisdatentypen ... 46
3.1 ... Variablen ... 46
3.2 ... Definition und Deklaration von Variablen ... 47
3.3 ... Initialisierung und Zuweisung von Werten ... 48
3.4 ... Ganzzahltypen ... 51
3.5 ... Ganzzahldatentyp für Zeichen ... 58
3.6 ... Fließkommazahlentypen ... 68
3.7 ... Der 'auto'-Typ ... 71
3.8 ... Konstanten ... 72
3.9 ... Die Byte-Größe mit dem 'sizeof'-Operator ... 73
3.10 ... Limits für die Basisdatentypen ... 74
3.11 ... Kontrollfragen und Aufgaben ... 77
4. Arbeiten mit den eingebauten Typen ... 78
4.1 ... Arithmetische Operatoren ... 78
4.2 ... Ungenaue Fließkommazahlen ... 86
4.3 ... Typumwandlung ... 88
4.4 ... Formatierte Ausgabe von Werten ... 94
4.5 ... Kontrollfragen und Aufgaben ... 95
5. Kontrollstrukturen ... 97
5.1 ... Der eingebaute Datentyp 'bool' ... 97
5.2 ... Vergleichsoperatoren ... 98
5.3 ... Bedingte Anweisung mit 'if' ... 101
5.4 ... Anweisungsblock für Kontrollstrukturen ... 102
5.5 ... Alternative 'else'-Verzweigung ... 103
5.6 ... Bedingte Anweisung mit Initialisierung ... 105
5.7 ... Mehrfache Verzweigung ... 105
5.8 ... Der Bedingungsoperator '?:' ... 108
5.9 ... Logische Operatoren ... 109
5.10 ... Die Fallunterscheidung -- 'switch' ... 111
5.11 ... Die kopfgesteuerte 'while'-Schleife ... 114
5.12 ... Die fußgesteuerte 'do-while'-Schleife ... 116
5.13 ... Die Zählschleife 'for' ... 117
5.14 ... Kontrollierte Sprunganweisungen ... 121
5.15 ... Kontrollfragen und Aufgaben ... 123
6. Arrays und Strings ... 125
6.1 ... Arrays ... 125
6.2 ... Strings in C++ ... 139
6.3 ... Kontrollfragen und Aufgaben ... 145
7. Referenzen und Zeiger ... 146
7.1 ... Referenzen ... 146
7.2 ... Zeiger ... 149
7.3 ... Kontrollfragen und Aufgaben ... 158
8. Funktionen ... 160
8.1 ... Grundlegendes zu Funktionen ... 160
8.2 ... Referenzen als Parameter und Rückgabe ... 180
8.3 ... Zeiger als Parameter und Rückgabewert ... 187
8.4 ... Übergabe großer Elemente als Funktionsparameter ... 188
8.5 ... C-Arrays oder C-Strings als Funktionsparameter ... 190
8.6 ... Kontrollfragen und Aufgaben ... 191
9. Modularisierung und Präprozessor ... 193
9.1 ... Präprozessor-Direktiven ... 193
9.2 ... Modulare Programmierung ... 199
9.3 ... Namensräume ... 205
9.4 ... Spezifizierer und Qualifikatoren ... 217
9.5 ... Kontrollfragen und Aufgaben ... 223
10. Strukturen, Aufzählungen und dynamische Speicherobjekte ... 226
10.1 ... Erste eigene Datentypen mit Strukturen ... 226
10.2 ... Der Aufzählungstyp 'enum' ... 235
10.3 ... Eigene Namen mit 'using' ... 237
10.4 ... Dynamische Speicherobjekte ... 238
10.5 ... Kontrollfragen und Aufgaben ... 249
11. Klassen ... 250
11.1 ... Klassen ... 250
11.2 ... Konstruktoren ... 264
11.3 ... Destruktoren ... 281
11.4 ... Weitere Formen von Methoden ... 286
11.5 ... Kontrollfragen und Aufgaben ... 295
12. Objekte und Klassenelemente ... 297
12.1 ... Objekt als Parameter ... 297
12.2 ... Freundfunktionen ('friend') ... 302
12.3 ... Objekte einer Klasse als Rückgabewerte ... 304
12.4 ... Arrays von Objekten ... 310
12.5 ... Dynamische Objekte ... 311
12.6 ... Klassenobjekte als Klassenattribute ... 313
12.7 ... Eine Containerklasse als Klassenattribut ... 318
12.8 ... Smart Pointer als Klassenattribut ... 321
12.9 ... Statische und konstante Klassenelemente ... 325
12.10 ... Die Nullregel (Rule of Zero) ... 333
12.11 ... Kontrollfragen und Aufgaben ... 336
13. Operatoren überladen ... 338
13.1 ... Das Schlüsselwort 'operator' ... 340
13.2 ... Zweistellige (arithmetische) Operatoren überladen ... 341
13.3 ... Einstellige Operatoren überladen ... 348
13.4 ... Den Zuweisungsoperator überladen ... 352
13.5 ... Ausgabe- und Eingabeoperatoren überladen ... 357
13.6 ... Vergleichsoperatoren ... 361
13.7 ... Weitere Operatorüberladungen ... 364
13.8 ... Konvertierungsoperatoren ... 364
13.9 ... Kontrollfragen und Aufgaben ... 368
14. Vererbung (Abgeleitete Klassen) ... 370
14.1 ... Die Vorbereitung ... 371
14.2 ... Das Ableiten einer Klasse ... 373
14.3 ... Kontrollfragen und Aufgaben ... 393
15. Templates ... 395
15.1 ... Funktionstemplates ... 395
15.2 ... Klassentemplates ... 405
15.3 ... Kontrollfragen und Aufgaben ... 411
16. Ausnahmebehandlung (Fehlerbehandlung) ... 413
16.1 ... Grundlagen der Fehlerbehandlung ... 413
16.2 ... Eine Ausnahme auslösen ... 415
16.3 ... Eine Ausnahme auffangen und behandeln ... 416
16.4 ... Standardausnahmen (Fehlerklassen) ... 426
16.5 ... Die Alternative 'std::expected' ... 431
16.6 ... Vermeidung von Fehlern mit [[nodiscard]] ... 433
16.7 ... Fehlerdiagnose mit 'std::source_location' ... 434
16.8 ... Kontrollfragen ... 435
17. Ein-/Ausgabestreams für Dateien ... 436
17.1 ... Der Umgang mit Dateien in C++ ... 436
17.2 ... Verschiedene Streams für Dateien ... 436
17.3 ... Eine Datei öffnen und schließen ... 437
17.4 ... Mit 'std::filesystem' arbeiten ... 449
17.5 ... Kontrollfragen und Aufgaben ... 450
18. Die Standardbibliothek und weitere Sprachelemente ... 452
18.1 ... Die Container der Standardbibliothek ... 452
18.2 ... Algorithmen der Standardbibliothek ... 465
18.3 ... Fortgeschrittene Sprachelemente ... 468
18.4 ... Fortgeschrittene Funktionskonzepte ... 473
18.5 ... Smart Pointer ... 483
18.6 ... Textansichten und Formatierung ... 494
18.7 ... Die Zeitbibliothek ... 501
18.8 ... Ausblick auf das Multithreading ... 507
Anhang ... 509
A ... Lösungen der Übungsaufgaben ... 509
Index ... 533
1.1 ... Der C++-Standard ... 19
1.2 ... Die nötigen Werkzeuge für C++ ... 20
1.3 ... Übersetzen mit g++ und clang++ ... 24
1.4 ... Übersetzen mit einer Entwicklungsumgebung ... 26
1.5 ... Listings zum Buch ... 30
1.6 ... Kontrollfragen und Aufgaben im Buch ... 30
1.7 ... Aufgabe ... 30
1.8 ... Aufgabe zu C++ 23 ... 31
2. Erste Schritte in C++ ... 33
2.1 ... Das erste Programm in C++ ... 33
2.2 ... Anweisungen und Ausdrücke ... 35
2.3 ... Die Standardeingabe- und -ausgabestreams ... 37
2.4 ... Einige Begriffe zu C++ ... 43
2.5 ... Kontrollfragen und Aufgaben ... 45
3. Die eingebauten C++-Basisdatentypen ... 46
3.1 ... Variablen ... 46
3.2 ... Definition und Deklaration von Variablen ... 47
3.3 ... Initialisierung und Zuweisung von Werten ... 48
3.4 ... Ganzzahltypen ... 51
3.5 ... Ganzzahldatentyp für Zeichen ... 58
3.6 ... Fließkommazahlentypen ... 68
3.7 ... Der 'auto'-Typ ... 71
3.8 ... Konstanten ... 72
3.9 ... Die Byte-Größe mit dem 'sizeof'-Operator ... 73
3.10 ... Limits für die Basisdatentypen ... 74
3.11 ... Kontrollfragen und Aufgaben ... 77
4. Arbeiten mit den eingebauten Typen ... 78
4.1 ... Arithmetische Operatoren ... 78
4.2 ... Ungenaue Fließkommazahlen ... 86
4.3 ... Typumwandlung ... 88
4.4 ... Formatierte Ausgabe von Werten ... 94
4.5 ... Kontrollfragen und Aufgaben ... 95
5. Kontrollstrukturen ... 97
5.1 ... Der eingebaute Datentyp 'bool' ... 97
5.2 ... Vergleichsoperatoren ... 98
5.3 ... Bedingte Anweisung mit 'if' ... 101
5.4 ... Anweisungsblock für Kontrollstrukturen ... 102
5.5 ... Alternative 'else'-Verzweigung ... 103
5.6 ... Bedingte Anweisung mit Initialisierung ... 105
5.7 ... Mehrfache Verzweigung ... 105
5.8 ... Der Bedingungsoperator '?:' ... 108
5.9 ... Logische Operatoren ... 109
5.10 ... Die Fallunterscheidung -- 'switch' ... 111
5.11 ... Die kopfgesteuerte 'while'-Schleife ... 114
5.12 ... Die fußgesteuerte 'do-while'-Schleife ... 116
5.13 ... Die Zählschleife 'for' ... 117
5.14 ... Kontrollierte Sprunganweisungen ... 121
5.15 ... Kontrollfragen und Aufgaben ... 123
6. Arrays und Strings ... 125
6.1 ... Arrays ... 125
6.2 ... Strings in C++ ... 139
6.3 ... Kontrollfragen und Aufgaben ... 145
7. Referenzen und Zeiger ... 146
7.1 ... Referenzen ... 146
7.2 ... Zeiger ... 149
7.3 ... Kontrollfragen und Aufgaben ... 158
8. Funktionen ... 160
8.1 ... Grundlegendes zu Funktionen ... 160
8.2 ... Referenzen als Parameter und Rückgabe ... 180
8.3 ... Zeiger als Parameter und Rückgabewert ... 187
8.4 ... Übergabe großer Elemente als Funktionsparameter ... 188
8.5 ... C-Arrays oder C-Strings als Funktionsparameter ... 190
8.6 ... Kontrollfragen und Aufgaben ... 191
9. Modularisierung und Präprozessor ... 193
9.1 ... Präprozessor-Direktiven ... 193
9.2 ... Modulare Programmierung ... 199
9.3 ... Namensräume ... 205
9.4 ... Spezifizierer und Qualifikatoren ... 217
9.5 ... Kontrollfragen und Aufgaben ... 223
10. Strukturen, Aufzählungen und dynamische Speicherobjekte ... 226
10.1 ... Erste eigene Datentypen mit Strukturen ... 226
10.2 ... Der Aufzählungstyp 'enum' ... 235
10.3 ... Eigene Namen mit 'using' ... 237
10.4 ... Dynamische Speicherobjekte ... 238
10.5 ... Kontrollfragen und Aufgaben ... 249
11. Klassen ... 250
11.1 ... Klassen ... 250
11.2 ... Konstruktoren ... 264
11.3 ... Destruktoren ... 281
11.4 ... Weitere Formen von Methoden ... 286
11.5 ... Kontrollfragen und Aufgaben ... 295
12. Objekte und Klassenelemente ... 297
12.1 ... Objekt als Parameter ... 297
12.2 ... Freundfunktionen ('friend') ... 302
12.3 ... Objekte einer Klasse als Rückgabewerte ... 304
12.4 ... Arrays von Objekten ... 310
12.5 ... Dynamische Objekte ... 311
12.6 ... Klassenobjekte als Klassenattribute ... 313
12.7 ... Eine Containerklasse als Klassenattribut ... 318
12.8 ... Smart Pointer als Klassenattribut ... 321
12.9 ... Statische und konstante Klassenelemente ... 325
12.10 ... Die Nullregel (Rule of Zero) ... 333
12.11 ... Kontrollfragen und Aufgaben ... 336
13. Operatoren überladen ... 338
13.1 ... Das Schlüsselwort 'operator' ... 340
13.2 ... Zweistellige (arithmetische) Operatoren überladen ... 341
13.3 ... Einstellige Operatoren überladen ... 348
13.4 ... Den Zuweisungsoperator überladen ... 352
13.5 ... Ausgabe- und Eingabeoperatoren überladen ... 357
13.6 ... Vergleichsoperatoren ... 361
13.7 ... Weitere Operatorüberladungen ... 364
13.8 ... Konvertierungsoperatoren ... 364
13.9 ... Kontrollfragen und Aufgaben ... 368
14. Vererbung (Abgeleitete Klassen) ... 370
14.1 ... Die Vorbereitung ... 371
14.2 ... Das Ableiten einer Klasse ... 373
14.3 ... Kontrollfragen und Aufgaben ... 393
15. Templates ... 395
15.1 ... Funktionstemplates ... 395
15.2 ... Klassentemplates ... 405
15.3 ... Kontrollfragen und Aufgaben ... 411
16. Ausnahmebehandlung (Fehlerbehandlung) ... 413
16.1 ... Grundlagen der Fehlerbehandlung ... 413
16.2 ... Eine Ausnahme auslösen ... 415
16.3 ... Eine Ausnahme auffangen und behandeln ... 416
16.4 ... Standardausnahmen (Fehlerklassen) ... 426
16.5 ... Die Alternative 'std::expected' ... 431
16.6 ... Vermeidung von Fehlern mit [[nodiscard]] ... 433
16.7 ... Fehlerdiagnose mit 'std::source_location' ... 434
16.8 ... Kontrollfragen ... 435
17. Ein-/Ausgabestreams für Dateien ... 436
17.1 ... Der Umgang mit Dateien in C++ ... 436
17.2 ... Verschiedene Streams für Dateien ... 436
17.3 ... Eine Datei öffnen und schließen ... 437
17.4 ... Mit 'std::filesystem' arbeiten ... 449
17.5 ... Kontrollfragen und Aufgaben ... 450
18. Die Standardbibliothek und weitere Sprachelemente ... 452
18.1 ... Die Container der Standardbibliothek ... 452
18.2 ... Algorithmen der Standardbibliothek ... 465
18.3 ... Fortgeschrittene Sprachelemente ... 468
18.4 ... Fortgeschrittene Funktionskonzepte ... 473
18.5 ... Smart Pointer ... 483
18.6 ... Textansichten und Formatierung ... 494
18.7 ... Die Zeitbibliothek ... 501
18.8 ... Ausblick auf das Multithreading ... 507
Anhang ... 509
A ... Lösungen der Übungsaufgaben ... 509
Index ... 533
Details
Erscheinungsjahr: | 2025 |
---|---|
Fachbereich: | Programmiersprachen |
Genre: | Informatik, Mathematik, Medizin, Naturwissenschaften, Technik |
Rubrik: | Naturwissenschaften & Technik |
Medium: | Taschenbuch |
Reihe: | Rheinwerk Computing |
Inhalt: | 542 S. |
ISBN-13: | 9783367104529 |
ISBN-10: | 3367104523 |
Sprache: | Deutsch |
Einband: | Klappenbroschur |
Autor: |
Wolf, Jürgen
Guddat, Martin |
Auflage: | 5. Auflage |
Hersteller: | Rheinwerk Verlag GmbH |
Verantwortliche Person für die EU: | Rheinwerk Verlag GmbH, Rheinwerkallee 4, D-53227 Bonn, service@rheinwerk-verlag.de |
Maße: | 188 x 122 x 32 mm |
Von/Mit: | Jürgen Wolf (u. a.) |
Erscheinungsdatum: | 06.06.2025 |
Gewicht: | 0,598 kg |
Sicherheitshinweis