Wolf / Guddat | Grundkurs C++ | Buch | 978-3-367-10452-9 | sack.de

Buch, Deutsch, 542 Seiten, Format (B × H): 122 mm x 188 mm, Gewicht: 598 g

Reihe: Rheinwerk Computing

Wolf / Guddat

Grundkurs C++

Kompaktes Wissen im Taschenbuchformat. Ideal für Studium und Beruf. Aktuell zu C++23
5. Auflage 2025
ISBN: 978-3-367-10452-9
Verlag: Rheinwerk Verlag GmbH

Kompaktes Wissen im Taschenbuchformat. Ideal für Studium und Beruf. Aktuell zu C++23

Buch, Deutsch, 542 Seiten, Format (B × H): 122 mm x 188 mm, Gewicht: 598 g

Reihe: Rheinwerk Computing

ISBN: 978-3-367-10452-9
Verlag: Rheinwerk Verlag GmbH


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 C++.
Diese fünfte Auflage wurde umfassend überarbeitet und modernisiert.
Das 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

Wolf / Guddat Grundkurs C++ jetzt bestellen!

Weitere Infos & Material



  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


Guddat, Martin
Prof. Dr. Martin Guddat lehrt an der Westfälischen Hochschule in Gelsenkirchen und Bocholt. Er hat langjährige Erfahrung in der Erstellung technischer Software, z. B. für Mobiltelefone und Fingerabdrucksensoren, zudem als IT-Projektleiter und als Berater im Bereich der Systemintegration großer Softwareprojekte.

Wolf, Jürgen
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.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.