Eine Tour durch C++ Der praktische Leitfaden für modernes C++.Übersetzung der 3. Auflage

Dieses Buch bietet erfahrenen Programmierern einen praktischen Überblick über C++20 nach ISO-Standard und damit ein klares Verständnis für den Einsatz von modernem C++. Anhand vieler Codebeispiele und hilfreicher Praxistipps wird ein Großteil der Hauptfeatures der Sprache sowie der Standardbibli...

Descripción completa

Detalles Bibliográficos
Autor principal: Stroustrup, Bjarne (-)
Formato: Libro electrónico
Idioma:Alemán
Publicado: Frechen : mitp 2023.
Edición:1st ed
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009755239106719
Tabla de Contenidos:
  • Intro
  • Impressum
  • Einleitung
  • Danksagungen
  • Über die Fachkorrektoren der deutschen Ausgabe
  • Kapitel 1: Die Grundlagen
  • 1.1 Einführung
  • 1.2 Programme
  • 1.2.1 ‌Hello, World!
  • 1.3 ‌Funktionen
  • 1.4 Typen, Variablen und Arithmetik
  • 1.4.1 Rechenoperatoren
  • 1.4.2 Initialisierung
  • 1.5 Gültigkeitsbereich und ‌Lebensdauer
  • 1.6 ‌Konstanten
  • 1.7 Zeiger, ‌Arrays und ‌Referenzen
  • 1.7.1 Der ‌Null-Pointer
  • 1.8 Bedingungen prüfen
  • 1.9 Auf Hardware abbilden
  • 1.9.1 ‌Zuweisung
  • 1.9.2 ‌Initialisierung
  • 1.10 Ratschläge
  • Kapitel 2: Benutzerdefinierte Typen
  • 2.1 Einführung
  • 2.2 Strukturen
  • 2.3 Klassen
  • 2.4 Aufzählungen
  • 2.5 Unions
  • 2.6 Ratschläge
  • Kapitel 3: Modularität
  • 3.1 Einführung
  • 3.2 Separates Kompilieren
  • 3.2.1 Header-Dateien
  • 3.2.2 Module
  • 3.3 Namensräume
  • 3.4 Funktionsargumente und Rückgabewerte
  • 3.4.1 Argumentübergabe
  • 3.4.2 Werterückgabe
  • 3.4.3 Rückgabetyp ableiten
  • 3.4.4 Suffix-Rückgabetyp
  • 3.4.5 Strukturierte Bindung
  • 3.5 Ratschläge
  • Kapitel 4: Fehlerbehandlung
  • 4.1 Einführung
  • 4.2 Exceptions
  • 4.3 Invarianten
  • 4.4 Alternativen für die Fehlerbehandlung
  • 4.5 Assertions
  • 4.5.1 assert()
  • 4.5.2 Statische Assertionen
  • 4.5.3 noexcept
  • 4.6 Ratschläge
  • Kapitel 5: Klassen
  • 5.1 Einführung
  • 5.1.1 Klassen
  • 5.2 Konkrete Typen
  • 5.2.1 Ein arithmetischer Typ
  • 5.2.2 Ein Container
  • 5.2.3 Container initialisieren
  • 5.3 Abstrakte Typen
  • 5.4 Virtuelle Funktionen
  • 5.5 Klassenhierarchien
  • 5.5.1 Vorteile von Hierarchien
  • 5.5.2 Die Navigation in einer Hierarchie
  • 5.5.3 Ressourcenlecks vermeiden
  • 5.6 Ratschläge
  • Kapitel 6: Notwendige Operationen
  • 6.1 Einführung
  • 6.1.1 Notwendige Operationen
  • 6.1.2 Konvertierungen
  • 6.1.3 Member-Initialisierer
  • 6.2 Kopieren und Verschieben
  • 6.2.1 Container kopieren
  • 6.2.2 Container verschieben.
  • 6.3 Ressourcenverwaltung
  • 6.4 Operatoren überladen
  • 6.5 Konventionelle Operationen
  • 6.5.1 Vergleiche (Relationale Operatoren)
  • 6.5.2 Container-Operationen
  • 6.5.3 Iteratoren und »smarte Zeiger«
  • 6.5.4 Eingabe- und Ausgabeoperationen
  • 6.5.5 swap()
  • 6.5.6 hash&lt
  • &gt
  • 6.6 Benutzerdefinierte Literale
  • 6.7 Ratschläge
  • Kapitel 7: Templates
  • 7.1 Einführung
  • 7.2 Parametrisierte Typen
  • 7.2.1 Beschränkte Template-Argumente
  • 7.2.2 Wert-Template-Argumente
  • 7.2.3 Deduktion von Template-Argumenten
  • 7.3 Parametrisierte Operationen
  • 7.3.1 Funktions-Templates
  • 7.3.2 Funktionsobjekte
  • 7.3.3 Lambda-Ausdrücke
  • 7.4 Template-Mechanismen
  • 7.4.1 Variablen-Templates
  • 7.4.2 Aliasse
  • 7.4.3 Compile-Zeit-if
  • 7.5 Ratschläge
  • Kapitel 8: Konzepte und generische Programmierung
  • 8.1 Einführung
  • 8.2 Konzepte
  • 8.2.1 Verwendung von Konzepten
  • 8.2.2 Konzeptbasiertes Überladen
  • 8.2.3 Gültiger Code
  • 8.2.4 Definition von Konzepten
  • 8.2.5 Konzepte und auto
  • 8.2.6 Konzepte und Typen
  • 8.3 Generische Programmierung
  • 8.3.1 Verwendung von Konzepten
  • 8.3.2 Abstraktion mittels Templates
  • 8.4 Variadische Templates
  • 8.4.1 Fold-Ausdrücke
  • 8.4.2 Argumente weitergeben
  • 8.5 Modell der Template-Kompilierung
  • 8.6 Ratschläge
  • Kapitel 9: Überblick über die Bibliothek
  • 9.1 Einführung
  • 9.2 Komponenten der Standardbibliothek
  • 9.3 Organisation der Standardbibliothek
  • 9.3.1 Namensräume
  • 9.3.2 Der Namensraum ranges
  • 9.3.3 Module
  • 9.3.4 Header
  • 9.4 Ratschläge
  • Kapitel 10: Strings und reguläre Ausdrücke
  • 10.1 Einführung
  • 10.2 Strings
  • 10.2.1 Die Implementierung von string
  • 10.3 String-Views
  • 10.4 Reguläre Ausdrücke
  • 10.4.1 Suche
  • 10.4.2 Notation regulärer Ausdrücke
  • 10.4.3 Iteratoren
  • 10.5 Ratschläge
  • Kapitel 11: Eingabe und Ausgabe
  • 11.1 Einführung
  • 11.2 Ausgabe
  • 11.3 Eingabe.
  • 11.4 I/O-Status
  • 11.5 Ein-/Ausgabe benutzerdefinierter Typen
  • 11.6 Ausgabeformatierung
  • 11.6.1 Stream-Formatierung
  • 11.6.2 Formatierung im printf()-Stil
  • 11.7 Streams
  • 11.7.1 Standard-Streams
  • 11.7.2 Datei-Streams
  • 11.7.3 String-Streams
  • 11.7.4 Speicher-Streams
  • 11.7.5 Synchronisierte Streams
  • 11.8 Ein-/Ausgaben im C-Stil
  • 11.9 Dateisystem
  • 11.9.1 Pfade
  • 11.9.2 Dateien und Verzeichnisse
  • 11.10 Ratschläge
  • Kapitel 12: Container
  • 12.1 Einführung
  • 12.2 vector
  • 12.2.1 Elemente
  • 12.2.2 Bereichsüberprüfung
  • 12.3 list
  • 12.4 forward_list
  • 12.5 map
  • 12.6 unordered_map
  • 12.7 Allokatoren
  • 12.8 Ein Überblick über Container
  • 12.9 Ratschläge
  • Kapitel 13: Algorithmen
  • 13.1 Einführung
  • 13.2 Verwendung von Iteratoren
  • 13.3 Iterator-Typen
  • 13.3.1 Stream-Iteratoren
  • 13.4 Verwendung von Prädikaten
  • 13.5 Überblick über Algorithmen
  • 13.6 Parallele Algorithmen
  • 13.7 Ratschläge
  • Kapitel 14: Bereiche (Ranges)
  • 14.1 Einführung
  • 14.2 Views
  • 14.3 Generatoren
  • 14.4 Pipelines
  • 14.5 Überblick über Konzepte
  • 14.5.1 Typkonzepte
  • 14.5.2 Iterator-Konzepte
  • 14.5.3 Bereichskonzepte
  • 14.6 Ratschläge
  • Kapitel 15: Zeiger und Container
  • 15.1 Einführung
  • 15.2 Zeiger
  • 15.2.1 unique_ptr und shared_ptr
  • 15.2.2 span
  • 15.3 Container
  • 15.3.1 array
  • 15.3.2 bitset
  • 15.3.3 pair
  • 15.3.4 tuple
  • 15.4 Alternativen
  • 15.4.1 variant
  • 15.4.2 optional
  • 15.4.3 any
  • 15.5 Ratschläge
  • Kapitel 16: Utilities
  • 16.1 Einführung
  • 16.2 Zeit
  • 16.2.1 Uhren
  • 16.2.2 Kalender
  • 16.2.3 Zeitzonen
  • 16.3 Funktionsanpassung
  • 16.3.1 Lambdas als Adapter
  • 16.3.2 mem_fn()
  • 16.3.3 function
  • 16.4 Typfunktionen
  • 16.4.1 Typprädikate
  • 16.4.2 Bedingte Eigenschaften
  • 16.4.3 Typgeneratoren
  • 16.4.4 Assoziierte Typen
  • 16.5 source_location
  • 16.6 move() und forward()
  • 16.7 Bitmanipulation.
  • 16.8 Ein Programm beenden
  • 16.9 Ratschläge
  • Kapitel 17: Numerik
  • 17.1 Einführung
  • 17.2 Mathematische Funktionen
  • 17.3 Numerische Algorithmen
  • 17.3.1 Parallele numerische Algorithmen
  • 17.4 Komplexe Zahlen
  • 17.5 Zufallszahlen
  • 17.6 Vektorarithmetik
  • 17.7 Numerische Grenzen
  • 17.8 Typ-Aliasse
  • 17.9 Mathematische Konstanten
  • 17.10 Ratschläge
  • Kapitel 18: Nebenläufigkeit
  • 18.1 Einführung
  • 18.2 Tasks und thread
  • 18.2.1 Argumente übergeben
  • 18.2.2 Ergebnisse zurückgeben
  • 18.3 Daten gemeinsam nutzen
  • 18.3.1 mutexe und Locks
  • 18.3.2 atomic
  • 18.4 Warten auf Ereignisse
  • 18.5 Kommunizierende Tasks
  • 18.5.1 future und promise
  • 18.5.2 packaged_task
  • 18.5.3 async()
  • 18.5.4 Einen Thread stoppen
  • 18.6 Koroutinen
  • 18.6.1 Kooperatives Multitasking
  • 18.7 Ratschläge
  • Kapitel 19: Geschichte und Kompatibilität
  • 19.1 Geschichte
  • 19.1.1 Chronik
  • 19.1.2 Die frühen Jahre
  • 19.1.3 Die ISO-C++-Standards
  • 19.1.4 Standards und Stil
  • 19.1.5 Verwendung von C++
  • 19.1.6 Das C++-Modell
  • 19.2 Die Entwicklung der Merkmale von C++
  • 19.2.1 Sprachmerkmale von C++11
  • 19.2.2 Sprachmerkmale von C++14
  • 19.2.3 Sprachmerkmale von C++17
  • 19.2.4 Sprachmerkmale von C++20
  • 19.2.5 Komponenten der C++11-Standardbibliothek
  • 19.2.6 Komponenten der C++14-Standardbibliothek
  • 19.2.7 Komponenten der C++17-Standardbibliothek
  • 19.2.8 Komponenten der C++20-Standardbibliothek
  • 19.2.9 Entfernte und veraltete Funktionsmerkmale
  • 19.3 C/C++-Kompatibilität
  • 19.3.1 C und C++ sind Geschwister
  • 19.3.2 Kompatibilitätsprobleme
  • 19.4 Ratschläge
  • Anhang A: module std
  • A.1 Einführung
  • A.2 Benutzen Sie, was Ihre Implementierung zu bieten hat
  • A.3 Benutzen Sie Header
  • A.4 Machen Sie sich Ihr eigenes module std
  • A.5 Ratschläge
  • Anhang B: Literaturverzeichnis
  • B.1 Literaturhinweise.