C++ - Lernen und professionell anwenden
Book information
Description
Gezielter Lernerfolg durch überschaubare KapiteleinheitenVollständige Darstellung Schritt für SchrittKonsequent objektorientiert programmieren Sie möchten die Programmiersprache C++ erlernen oder vertiefen und sind Anfänger oder aber fortgeschrittener Programmierer? Dann ist dieses Buch richtig für Sie! Sie lernen die elementaren Sprachkonzepte von C++ und werden schrittweise bis zur Entwicklung professioneller C++-Programme geführt. In den Beispielen zeigen die Autoren die ganze Breite des Anwendungsspektrums auf. Dabei basiert die Sprachbeschreibung auf dem ISO-Standard, der von allen gängigen Compilern unterstützt wird (Visual C++, GNU C++ etc.). Die Erweiterungen des neuen Standards von 2017 (kurz C++17), wie beispielsweise die Filesystem-Bibliothek, sind in aktuellen Compilern noch nicht voll integriert und werden deshalb in diesem Buch mit C++17 gekennzeichnet. Für den professionellen Einsatz sind in den hinteren Kapiteln Themen wie Smart Pointer, Multithreading, Container und Algorithmen der Standard-Template-Library sowie die Numerische Bibliothek beschrieben. Zahlreiche Anwendungsbeispiele illustrieren die unterschiedlichen Verwendungsmöglichkeiten. Jedes Kapitel bietet Ihnen die Gelegenheit, mit Übungen und Musterlösungen Ihre Kenntnisse direkt zu überprüfen und zu vertiefen. Die Programmbeispiele aus dem Buch finden Sie zum Download auf der Webseite des Verlags. Aus dem Inhalt: Datentypen, Kontrollstrukturen, Operatoren, Makros, FunktionenVektoren, Strings, Matrizen, Referenzen und ZeigerSpeicherreservierung zur Laufzeit, Dynamische Arrays und Move-SemantikKlassen, Vererbung und PolymorphieSequenzieller, wahlfreier und portabler DateizugriffException-HandlingTemplatesSmart PointerMultithreadingContainer und Algorithmen der StandardbibliothekNumerische BibliothekUmfassendes Glossar Cover Titel Impressum Inhaltsverzeichnis Einleitung Kapitel 1: Grundlagen Entwicklung und Eigenschaften von C++ Objektorientierte Programmierung Erstellen eines C++-Programms Ein erstes C++-Programm Struktur einfacher C++-Programme Übungen Lösungen Kapitel 2: Elementare Datentypen, Konstanten und Variablen Elementare Datentypen Konstanten Escape-Sequenzen Namen Variablen Die Schlüsselworte const und volatile Übungen Lösungen Kapitel 3: Verwenden von Funktionen und Klassen Deklaration von Funktionen Aufruf von Funktionen Der Typ void für Funktionen Header-Dateien Standard-Header-Dateien Verwenden von Standardklassen Übungen Lösungen Kapitel 4: Ein- und Ausgaben mit Streams Streams Formatierung und Manipulatoren Formatierte Ausgabe von Ganzzahlen Formatierte Ausgabe von Gleitpunktzahlen Ausgabe in Felder Ausgabe von Zeichen, Strings und booleschen Werten Formatierte Eingabe Formatierte Eingabe von Zahlen Unformatierte Ein-/Ausgabe Übungen Lösungen Kapitel 5: Operatoren für elementare Datentypen Binäre arithmetische Operatoren Unäre arithmetische Operatoren Zuweisungen Vergleichsoperatoren Logische Operatoren Übungen Lösungen Kapitel 6: Kontrollstrukturen Die while-Schleife Die for-Schleife Die do-while-Schleife Verzweigungen mit if-else else-if-Ketten Bedingte Bewertung Auswahl mit switch Sprünge mit break, continue und goto Übungen Lösungen Kapitel 7: Symbolische Konstanten und Makros Makros Makros mit Parametern Arbeiten mit der #define-Direktive Bedingte Kompilierung Standardmakros zur Behandlung von Zeichen Umlenken von Standardeingabe und -ausgabe Übungen Lösungen Kapitel 8: Umwandlung arithmetischer Datentypen Implizite Typumwandlungen Verfahren bei arithmetischen Typumwandlungen Implizite Typumwandlungen bei Zuweisungen Weitere Typumwandlungen Übungen Lösungen Kapitel 9: Die Standardklasse string Definition und Zuweisung von Strings Verketten von Strings Strings vergleichen Einfügen und Löschen in Strings Suchen und Ersetzen in Strings Zugriff auf Zeichen in Strings Übungen Lösungen Kapitel 10: Funktionen Bedeutung von Funktionen in C++ Erstellen eigener Funktionen Return-Wert von Funktionen Übergabe von Argumenten inline-Funktionen Default-Argumente Überladen von Funktionen Rekursive Funktionen Platzhalter auto für Return-Typen Übungen Lösungen Kapitel 11: Speicherklassen und Namensbereiche Speicherklasse von Objekten Der Speicherklassen-Spezifizierer extern Der Speicherklassen-Spezifizierer static Speicherklassen-Spezifizierer von Funktionen Namensbereiche Das Schlüsselwort using Übungen Lösungen Kapitel 12: Referenzen und Zeiger Definition von Referenzen Referenzen als Parameter Referenzen als Return-Wert Ausdrücke mit Referenztyp Definition von Zeigern Der Verweisoperator Zeiger als Parameter Übungen Lösungen Kapitel 13: Definition von Klassen Klassen-Konzept Definition von Klassen Definition von Methoden Definition von Objekten Verwendung von Objekten Zeiger auf Objekte Structs Structured Bindings Unions Übungen Lösung Kapitel 14: Methoden Konstruktoren Aufruf von Konstruktoren Mehr Initialisierungsmöglichkeiten Destruktoren Inline-Methoden Zugriffsmethoden const-Objekte und -Methoden Standardmethoden Standardmethoden kontrollieren Der this-Zeiger Übergabe von Objekten Objekte als Return-Wert Übungen Lösungen Kapitel 15: Teilobjekte und statische Elemente Klassen mit Teilobjekten Elementinitialisierer Konstante Teilobjekte Statische Datenelemente Zugriff auf statische Datenelemente Aufzählungen Übungen Lösungen Kapitel 16: Vektoren Vektoren definieren Initialisierung von Vektoren C-Strings Die Standardklasse string_view Klassen-Arrays Mehrdimensionale Vektoren Vektoren als Datenelemente Übungen Lösungen Kapitel 17: Zeiger und Vektoren Vektoren und Zeiger (1) Vektoren und Zeiger (2) Zeigerarithmetik Vektoren als Argumente von Funktionen Zeigerversion von Funktionen Read-only-Zeiger Zeiger als Return-Wert Zeigervektoren Argumente aus der Kommandozeile Übungen Lösungen Kapitel 18: Grundlagen der Dateiverarbeitung Dateien File-Stream-Klassen File-Streams anlegen Eröffnungsmodus Schließen von Dateien Blockweises Schreiben und Lesen Persistenz von Objekten Übungen Lösungen Kapitel 19: Operatoren überladen Allgemeines Operatorfunktionen (1) Operatorfunktionen (2) Überladene Operatoren verwenden Globale Operatorfunktionen friend-Funktionen friend-Klassen Index-Operator überladen Shift-Operatoren für die Ein-/Ausgabe überladen Übungen Lösungen Kapitel 20: Typumwandlungen für Klassen Konvertierungskonstruktoren Konvertierungsfunktionen Mehrdeutigkeit bei Typumwandlungen Übungen Lösungen Kapitel 21: Speicherreservierung zur Laufzeit Der Operator new Der Operator delete Dynamischer Speicher für Klassen Dynamischer Speicher für Vektoren Anwendung: Einfach verkettete Listen Darstellung einer einfach verketteten Liste Übungen Lösungen Kapitel 22: Dynamische Elemente Datenfelder variabler Länge Eine Klasse mit dynamischem Element Auf- und Abbau eines Objekts Die Implementierung der Methoden Kopierkonstruktor Zuweisung Verschieben von R-Werten Move-Konstruktor Move-Zuweisung Übungen Lösungen Kapitel 23: Vererbung Konzept der Vererbung Abgeleitete Klassen Elemente abgeleiteter Klassen Elementzugriff Redefinition von Elementen Auf- und Abbau abgeleiteter Klassen Objekte abgeleiteter Klassen protected-Deklarationen Weitere Zugriffseinschränkungen Übungen Lösungen Kapitel 24: Typumwandlung in Klassenhierarchien Konvertierung in Basisklassen Typumwandlung bei Zuweisungen Konvertierung von Referenzen und Zeigern Explizite Typumwandlungen Übungen Lösungen Kapitel 25: Polymorphe Klassen Polymorphie Virtuelle Methoden Abbau dynamischer Objekte Virtuelle Methodentabelle Dynamische Casts Übungen Lösungen Kapitel 26: Abstrakte Klassen Rein virtuelle Methoden Abstrakte und konkrete Klassen Zeiger und Referenzen auf abstrakte Klassen Virtuelle Zuweisungen Anwendung: Inhomogene Listen Implementierung einer inhomogenen Liste Übungen Lösungen Kapitel 27: Mehrfachvererbung Mehrfach abgeleitete Klassen Mehrfache indirekte Basisklassen Virtuelle Basisklassen Aufrufe von Konstruktoren Initialisierung virtueller Basisklassen Übungen Lösungen Kapitel 28: Ausnahmebehandlung Traditionelle Fehlerbehandlung Exception-Handling Exception-Handler Auslösen und Auffangen von Exceptions Schachteln von Ausnahmebehandlungen Definition eigener Fehlerklassen Standardfehlerklassen Übungen Lösungen Kapitel 29: Mehr über Dateien Dateien für wahlfreien Zugriff öffnen Wahlfreies Positionieren Dateistatus Exception-Handling für Dateien Persistenz von polymorphen Objekten Anwendung: Indexdateien Implementierung eines Index-Dateisystems Portabler Zugriff auf das Dateisystem Übungen Lösungen Kapitel 30: Mehr über Zeiger Zeiger auf Zeiger Variable Anzahl von Argumenten Zeiger auf Funktionen Komplexe Deklarationen Definition von Typnamen Matrizen als Argumente von Funktionen Anwendung: Dynamische Matrizen Übungen Lösungen Kapitel 31: Bitmanipulationen Logische Bitoperatoren Shift-Operatoren Bitmasken Verwenden von Bitmasken Bitfelder Übungen Lösungen Kapitel 32: Templates Funktions- und Klassen-Templates Definition von Templates Instantiierung von Templates Template-Parameter Template-Argumente Spezialisierungen Default-Argumente von Templates Explizite Instantiierung Variable Anzahl von Parametern Operationen mit Parameterpacks Standard-Template für Tupel Typsichere Varianten Die Standard-Klassen optional und any Standard-Templates für Bitsets Übungen Lösungen Kapitel 33: Container Arten von Containern Sequenzielle Container-Klassen Iteratoren Vereinbarung sequenzieller Container Einfügen in sequenziellen Containern Elementzugriff Größe von Containern Löschen in sequenziellen Containern Listenoperationen Assoziative Container Sets und Multisets Maps und Multimaps Initialisierungslisten und Range-for-Schleifen Hash-Tabellen Ungeordnete assoziative Container Hash-Tabellen für selbstdefinierte Typen Übungen Lösungen Kapitel 34: Smart Pointer Grundlagen Die Smart Pointer der Standardbibliothek Smart Pointer vom Typ unique_ptr einsetzen Smart Pointer vom Typ unique_ptr einsetzen (2) Das Klassen-Template shared_ptr Das Klassen-Template shared_ptr (2) Das Klassen-Template shared_ptr (3) Das Klassen-Template weak_ptr Übungen Lösungen Kapitel 35: Multithreading Threads Erzeugen und Ausführen von Threads Initialisierung und Zuweisung Konkurrierende Speicherzugriffe Thread-ID Locks Bedingungsvariablen Übungen Lösungen Kapitel 36: Algorithmen der Standardbibliothek Algorithmen: Grundlagen Funktionsobjekte Lambda-Funktionen Algorithmen und Iteratoren Vordefinierte Iteratoren Nicht-modifizierende Algorithmen Modifizierende Algorithmen Mutierende Algorithmen Sortieren und verwandte Operationen Kapitel 37: Numerische Bibliothek Komplexe Zahlen Das Klassen-Template complex Methoden von complex Komplexe Funktionen Das Klassen-Template valarray Zuweisung numerischer Vektoren Arithmetische Operationen Weitere Operationen Selektive Indizierung Verallgemeinerte selektive Indizierung Indirekte und maskierte Indizierung Anhang A Binäre Zahlendarstellung Präprozessor-Direktiven Vordefinierte Standardmakros Einbinden von C-Funktionen Operatorenübersicht Vorrangtabelle für Operatoren ASCII-Code-Tabelle Bildschirmsteuerzeichen Compiler, Beispiele und Lösungen Anhang B Glossar Stichwortverzeichnis
Similar books
Der C++-Programmierer: C++ lernen – professionell anwenden – Lösungen nutzen. Aktuell zu C++17
2017 · PDF
C – kurz & gut
2019 · PDF
C in a Nutshell: The Definitive Reference
2015 · PDF
C in a Nutshell The Definitive Reference
2016 · PDF
C in a Nutshell
2008 · PDF
C in a Nutshell
2005 · PDF
C in a Nutshell, 2nd Edition: The Definitive Reference
2015 · PDF
C in a Nutshell, 2nd Edition: The Definitive Reference
2015 · PDF