Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Titelei
Impressum
Inhalt
Vorwort
Teil I – Grundkurs
1 Keine Angst vor C++!
1.1 Von C zu C++
1.1.1 Rückblick
1.1.2 Die strukturierte Programmierung
1.1.3 Chips sind billig, Programmierer teuer
1.1.4 Fassen wir zusammen
1.2 Von der Idee zum fertigen Programm
1.3 Näher hingeschaut: der C++-Compiler
1.3.1 Der Compiler ist ein strenger Lehrer
1.3.2 Definition und Deklaration
1.3.3 Das Konzept der Headerdateien
1.3.4 Namensräume
1.3.5 Der Compiler bei der Arbeit
1.3.6 ISO und die Compiler-Wahl
1.3.7 Der neue C++17-Standard
1.4 Übungen
2 Grundkurs: Das erste Programm
2.1 Hallo Welt! – das Programmgerüst
2.1.1 Typischer Programmaufbau
2.1.2 Die Eintrittsfunktion main()
2.1.3 Die Anweisungen
2.1.4 Headerdateien
2.1.5 Kommentare
2.2 Programmerstellung
2.2.1 Programmerstellung mit Visual Studio
2.2.2 Programmerstellung mit GNU-Compiler
2.2.3 Programmausführung
2.3 Stil
2.4 Übungen
3 Grundkurs: Daten und Variablen
3.1 Konstanten (Literale)
3.2 Variablen
3.2.1 Variablendefinition
3.2.2 Werte in Variablen speichern
3.2.3 Variablen bei der Definition initialisieren
3.2.4 Werte von Variablen abfragen
3.3 Konstante Variablen
3.4 Die Datentypen
3.4.1 Die Bedeutung des Datentyps
3.4.2 Die elementaren Datentypen
3.4.3 Weitere Datentypen
3.5 Typumwandlung
3.5.1 Typumwandlung bei der Ein- und Ausgabe
3.5.2 Automatische Typumwandlungen
3.5.3 Explizite Typumwandlungen
3.6 Übungen
4 Grundkurs: Operatoren und Ausdrücke
4.1 Rechenoperationen
4.1.1 Die arithmetischen Operatoren
4.1.2 Die mathematischen Funktionen
4.2 Ausdrücke
4.3 Die kombinierten Zuweisungen
4.4 Inkrement und Dekrement
4.5 Strings addieren
4.6 Weitere Operatoren
4.7 Übungen
5 Grundkurs: Kontrollstrukturen
5.1 Entscheidungen und Bedingungen
5.1.1 Bedingungen
5.1.2 Die Vergleichsoperatoren
5.1.3 Die logischen Operatoren
5.2 Verzweigungen
5.2.1 Die einfache if-Anweisung
5.2.2 Die if-else-Verzweigung
5.2.3 Die switch-Verzweigung
5.3 Schleifen
5.3.1 Die while-Schleife
5.3.2 Die do-while-Schleife
5.3.3 Die for-Schleife
5.3.4 Schleifen mit mehreren Schleifenvariablen
5.3.5 Performance-Tipps
5.4 Sprunganweisungen
5.4.1 Abbruchbefehle für Schleife
5.4.2 Abbruchbefehle für Funktionen
5.4.3 Sprünge mit goto
5.5 Fallstricke
5.5.1 Die leere Anweisung ;
5.5.2 Nebeneffekte in booleschen Ausdrücken
5.5.3 Dangling else-Problem
5.5.4 Endlosschleifen
5.6 Übungen
6 Grundkurs: Eigene Funktionen
6.1 Definition und Aufruf
6.1.1 Der Ort der Funktionsdefinition
6.1.2 Funktionsprototypen (Deklaration)
6.2 Rückgabewerte und Parameter
6.2.1 Rückgabewerte
6.2.2 Parameter
6.3 Lokale und globale Variablen
6.3.1 Lokale Variablen
6.3.2 Globale Variablen
6.3.3 Gültigkeitsbereiche und Verdeckung
6.4 Funktionen und der Stack
6.5 Überladung
6.6 Übungen
7 Grundkurs: Eigene Datentypen
7.1 Arrays
7.1.1 Definition
7.1.2 Auf Array-Elemente zugreifen
7.1.3 Initialisierung
7.1.4 Arrays in Schleifen durchlaufen
7.1.5 Arrays an Funktionen übergeben
7.1.6 Mehrdimensionale Arrays
7.1.7 Vor- und Nachteile der Programmierung mit Arrays
7.2 Aufzählungen
7.2.1 Definition
7.2.2 Variablen
7.2.3 Aufzählungstypen und switch-Verzweigungen
7.2.4 Die neuen enum class-Aufzählungen
7.3 Strukturen
7.3.1 Definition
7.3.2 Variablendefinition
7.3.3 Zugriff auf Elemente
7.3.4 Initialisierung
7.3.5 Arrays von Strukturen
7.4 Klassen
7.4.1 Definition
7.4.2 Variablen, Objekte und Konstruktoren
7.4.3 Zugriffsschutz
7.5 Übungen
8 Grundkurs: Zeiger und Referenzen
8.1 Zeiger
8.1.1 Definition
8.1.2 Initialisierung
8.1.3 Dereferenzierung
8.1.4 Zeigerarithmetik
8.2 Referenzen
8.3 Einsatzgebiete
8.3.1 call by reference
8.3.2 Dynamische Speicherreservierung
8.4 Übungen
9 Grundkurs: Noch ein paar Tipps
9.1 Wie gehe ich neue Programme an?
9.2 Wo finde ich Hilfe?
9.2.1 Hilfe zu Compiler-Meldungen
9.2.2 Hilfe bei der Lösung von Programmieraufgaben
9.2.3 Hilfe bei Programmen, die nicht richtig funktionieren
9.2.4 Debuggen
9.3 Programme optimieren
Teil II – Aufbaukurs: die Standardbibliothek
10 Aufbaukurs: Einführung
10.1 Bibliotheken verwenden
10.2 Hilfe zu den Bibliothekselementen
11 Aufbaukurs: Mathematische Funktionen
11.1 Die mathematischen Funktionen
11.1.1 Mathematische Konstanten
11.1.2 Verwendung der trigonometrischen Funktionen
11.1.3 Überläufe
11.2 Zufallszahlen
11.3 Komplexe Zahlen
11.4 Übungen
12 Aufbaukurs: Strings
12.1 String-Literale
12.1.1 Escape-Sequenzen
12.1.2 Zeilenumbrüche
12.2 Strings erzeugen
12.3 Strings aneinanderhängen
12.4 Strings vergleichen
12.5 Sonstige String-Manipulationen
12.6 C-Strings
12.7 Umwandlungen zwischen Strings und Zahlen
12.8 Übungen
13 Aufbaukurs: Ein- und Ausgabe
13.1 Daten auf die Konsole ausgeben
13.2 Formatierte Ausgabe
13.2.1 Ausgabebreite
13.2.2 Füllzeichen
13.2.3 Genauigkeit
13.2.4 Formatierte Ausgabe mit printf()
13.3 Deutsche Umlaute
13.4 Daten über die Konsole (Tastatur) einlesen
13.5 Fehlerbehandlung
13.6 Streams
13.7 Textdateien
13.7.1 In Textdateien schreiben
13.7.2 Aus Textdateien lesen
13.8 Binärdateien
13.9 Übungen
14 Aufbaukurs: Zeit und Datum
14.1 Zeit und Datum
14.2 Laufzeitmessungen
14.3 Übungen
15 Aufbaukurs: Container
15.1 Die STL
15.2 vector – ein intelligenter Daten-Container
15.2.1 Einsatz eines Containers
15.2.2 Größenmanagement von Containern
15.2.3 Typische Memberfunktionen
15.3 Der Gebrauch von Iteratoren
15.4 Die Algorithmen
15.4.1 generate()
15.4.2 stable_sort()
15.5 Schlüssel/Wert-Paare
15.6 Übungen
16 Aufbaukurs: Programme aus mehreren Quelltextdateien
16.1 Quelltext verteilen
16.1.1 Funktionen über Dateigrenzen hinweg verwenden
16.1.2 Klassen über Dateigrenzen hinweg verwenden
16.1.3 Variablen über Dateigrenzen hinweg verwenden
16.1.4 Typdefinitionen über Dateigrenzen hinweg verwenden
16.2 Mehrfacheinkopieren von Headerdateien verhindern
16.3 Übungen
Teil III – Objektorientierte Programmierung
17 OOP-Kurs: Klassen
17.1 Objektorientiert denken – objektorientiert programmieren
17.1.1 Objektorientiertes Programmieren
17.1.2 Wie sind Objekte beschaffen?
17.1.3 Wie findet man einen objektorientierten Lösungsansatz?
17.1.4 Objekte und Klassen
17.2 Klassendefinition
17.2.1 Zugriffsrechte
17.2.2 Quelltext- und Headerdatei
17.2.3 Klassen zu Visual-Studio-Projekten hinzufügen
17.3 Membervariablen
17.3.1 Anfangswerte
17.3.2 Private-Deklaration
17.3.3 Eingebettete Objekte
17.3.4 Konstante Membervariablen
17.3.5 Statische Membervariablen
17.4 Memberfunktionen
17.4.1 Definition innerhalb der Klassendefinition
17.4.2 Definition außerhalb der Klassendefinition
17.4.3 Der this-Zeiger
17.4.4 Statische Memberfunktionen
17.4.5 Konstante Memberfunktionen
17.4.6 Get-/Set-Memberfunktionen
17.5 Die Konstruktoren
17.5.1 Definition und Aufruf
17.5.2 Ersatz- und Standardkonstruktoren
17.6 Der Destruktor
17.7 Übungen
18 OOP-Kurs: Vererbung
18.1 Das Prinzip der Vererbung
18.1.1 Der grundlegende Mechanismus
18.1.2 Die Syntax
18.1.3 Wann ist Vererbung gerechtfertigt?
18.1.4 Einige wichtige Fakten
18.2 Das Basisklassenunterobjekt
18.2.1 Zugriff
18.2.2 Instanzbildung
18.3 Die Zugriffsspezifizierer für die Vererbung
18.4 Verdecken, überschreiben und überladen
18.4.1 Verdeckung
18.4.2 Überladung
18.4.3 Überschreibung
18.5 Der Destruktor
18.6 Mehrfachvererbung
18.7 Übungen
19 OOP-Kurs: Polymorphie
19.1 Grundprinzip und Implementierung
19.2 Späte und frühe Bindung
19.2.1 Frühe Bindung
19.2.2 Späte Bindung
19.3 Generische Programmierung
19.3.1 Basisklassen-Arrays
19.3.2 Basisklassenparameter
19.4 Typidentifizierung zur Laufzeit (RTTI)
19.4.1 Umwandlung mit dynamic_cast
19.4.2 Der typeid()-Operator
19.5 Abstrakte Klassen
19.5.1 Rein virtuelle Funktionen
19.5.2 Abstrakte Klassen
19.6 Übungen
20 OOP-Kurs: Ausnahmebehandlung
20.1 Fehlerprüfung mit Ausnahmen
20.2 Ausnahmen abfangen
20.3 Ausnahmen auslösen
20.4 Programmfluss und Ausnahmebehandlung
20.4.1 Wo wird der Programmfluss nach einer Ausnahme fortgesetzt?
20.4.2 Die Problematik des gestörten Programmflusses
20.5 Übungen
Teil IV – Profikurs
21 Profikurs: Allgemeine Techniken
21.1 Vorzeichen und Überlauf
21.2 Arithmetische Konvertierungen
21.3 Lokale static-Variablen
21.4 Der ?:-Operator
21.5 Bit-Operatoren
21.5.1 Multiplikation mit 2
21.5.2 Division durch 2
21.5.3 Klein- und Großschreibung
21.5.4 Flags umschalten
21.5.5 Gerade Zahlen erkennen
21.6 Zeiger auf Funktionen
21.7 Rekursion
21.8 constexpr-Funktionen
21.9 Variablendefinition in if und switch
22 Profikurs: Objektorientierte Techniken
22.1 Zeiger auf Memberfunktionen
22.2 Friends
22.3 Überladung von Operatoren
22.3.1 Syntax
22.3.2 Überladung des Inkrement-Operators ++
22.3.3 Überladung arithmetischer Operatoren +, +=
22.3.4 Überladung der Streamoperatoren <<>>
22.4 Objekte vergleichen
22.4.1 Gleichheit
22.4.2 Größenvergleiche
22.5 Objekte kopieren
23 Profikurs: Gültigkeitsbereiche und Lebensdauer
24 Profikurs: Templates
24.1 Funktionen-Templates
24.2 Klassen-Templates
25 Profikurs: Reguläre Ausdrücke
25.1 Syntax regulärer Ausdrücke
25.1.1 Zeichen und Zeichenklassen
25.1.2 Quantifizierer
25.1.3 Gruppierung
25.1.4 Assertionen (Anker)
25.2 Musterabgleich mit regulären Ausdrücken
25.3 Suchen mit regulären Ausdrücken
25.4 Ersetzen mit regulären Ausdrücken
26 Profikurs: Lambda-Ausdrücke
26.1 Syntax
26.2 Einsatz
Anhang A: Lösungen
Anhang B: Die Beispiele zum Buch
B.1 Installation der Visual Studio Community Edition
B.2 Ausführung der Beispielprogramme
B.2.1 Ausführung mit VS Community Edition 2017
B.2.2 Ausführung mit beliebigen integrierten Entwicklungsumgebungen
B.2.3 Ausführung mit GNU-Konsolen-Compiler
Anhang C: Zeichensätze
C.1 Der ASCII-Zeichensatz
C.2 Der ANSI-Zeichensatz
Anhang D: Syntaxreferenz
D.1 Schlüsselwörter
D.2 Elementare Typen
D.3 Strings
D.4 Operatoren
D.5 Ablaufsteuerung
D.6 Ausnahmebehandlung
D.7 Aufzählungen
D.7.1 enum
D.7.2 enum class (C++11)
D.8 Arrays
D.9 Zeiger
D.10 Strukturen
D.11 Klassen
D.12 Vererbung
D.13 Namensräume
Anhang E: Die Standardbibliothek
E.1 Die C-Standardbibliothek
E.2 Die C++-Standardbibliothek
← Prev
Back
Next →
← Prev
Back
Next →