Inhaltsverzeichnis
Inhaltsverzeichnis 5
Vorwort 11
C++ - die Sprache der Praxis 11
Einleitung 13
Computersprachen und Problemlösungen 13
Von C zu C++ 14
Grundidee der OOP 15
Entwicklungsgeschichte von C++ 16
Das Typkonzept in C 19
Was ist ein Datentyp? 19
Datentyparten 19
Definition privater Typen in C 21
Definitionen und Deklarationen 22
Typdefinition mit Strukturen 22
Definition von strukturierten Variablen 23
Operationen mit strukturierten Variablen 23
Operatorfunktionen 25
Informationsdateien 26
Übersetzen und Linken 30
Projekte bei IDE's (Integrierte Entwicklungsumgebung) 31
Probleme und Gefahren bei C 33
Von der Struktur zur Klasse - von C zu C++ 35
Die Klasse 35
Begriffe der OOP 36
Aufbau einer Informationsdatei mit Klassen 37
Benennung der Informationsdatei 38
Implementierung der Methoden 38
Arbeiten mit Objekten 39
Bindung 41
Botschaftenkonzept und andere Begriffe 42
Konstruktoren und Destruktor 43
|
Inhaltsverzeichnis Seite 5 |
Operationen mit Variablen 43
Initialisierung für Objekte 44
Konstruktor 45
Überlagerung von Methoden 47
Initialisierte Parameter 50
Destruktor 52
Dynamische Speicherverwaltung 61
Ein Überblick 61
Die Halde, der Heap 61
Funktionen malloc() und free() 64
Die Operatoren new und delete 66
Anlegen von Feldern mit Grunddatentypen 67
Dynamische Objekte 68
Ein Beispiel: die Zeile 69
Hinweise zur Weiterarbeit 73
Parameterübergabe bei Unterprogrammen 75
Formale und aktuelle Parameter 75
Übergabemethoden: per Wert oder per Referenz 76
Allgemeine Referenz oder Alias-Variable 83
Ablauf eines Unterprogrammaufrufes 84
Der Kopier-Konstruktor 86
Überlagerung von Operatoren 97
Aufruf der Operatormethoden 101
Typwandlung mit dem Schlüsselwort operator 113
Objekte zur Ein- und Ausgabe 117
Ein- und Ausgaben bei C 117
Probleme mit printf() 119
Standardobjekte: cout, cin, cerr 120
Arbeiten mit den Standardobjekten 121
Aufbau einer Operatorfunktion 124
Befreundete Funktionen und Klassen 127
Befreundete Funktionen 127
Befreundete Klassen 131
Drei Arten von Funktionen 132
|
Seite 6 Einsteigerseminar C++ |
Optimierung beim Arbeiten mit Objekten 133
Optimierung durch Referenzübergaben 133
Optimierung mit inline-Funktionen 138
Elemente der Klasse 143
Wiederverwendung von Software und Vererbung 149
Möglichkeiten der Wiederverwendung von Software 149
Objekte als Elemente einer Klasse 150
Wiederverwendung durch Vererbung 156
Erweiterung des Schutzkonzeptes in Klassen 160
Offene und geschlossene Vererbung 161
Einfache und mehrfache Vererbung 164
Klassendefinition mit mehrfacher Vererbung 165
Virtuelle Basisklasse 166
Beispiel für die Vererbung - ein Fenstersystem für den PC 167
Kopierkonstruktoren für abgeleitete Klassen 182
Späte Bindung oder Polymorphismus 185
Bindung Objekt - Methode 185
Frühe Bindung 185
Späte Bindung 187
Späte Bindung und Botschaftenkonzept 195
Mehrsprachiges Programmieren 199
Einbinden von C Programmen 199
Einfügen von Assemblerbefehlen 200
Ein- und Ausgabebibliothek 205
Arbeiten mit Dateien 206
Statustest 208
Formatfreie E/A 209
Formatierung der Verbindung - Manipulatoren 210
Typkonvertierung 215
Typkonvertierungen in C 215
Funktionale Schreibweise 218
Funktionale Schreibweise für Basisdatentypen 219
Funktionale Schreibweise für Klassen 219
|
Inhaltsverzeichnis Seite 7 |
Klassen-Konvertierungsoperatoren 221
Typkonvertierungen bei Vererbungen 225
Neue Konvertierungsoperatoren in C++ 225
Der Operator "const_cast" 226
Der Operator "static_cast" 228
Der Operator "dynamic_cast" 230
Der Operator "reinterpret_cast" 232
Tendenzen in der Typkonvertierung 234
Templates/Codeschablonen 235
Überlagerte Funktionen 236
Funktions-Templates 239
Typangaben innerhalb von Templates 242
Linken von Template-Funktionen 242
Explizite Deklaration von generierten Funktionen 243
Template-Makros 246
Klassen-Templates 246
Containerklassen 247
Behandlung von eigenen Klassen 250
Templates mit Wertparametern 251
Wert-Parameter und statischer Speicher 253
Templates und Bibliotheken 256
Problem der Fehlerbehandlung 256
Fehlerbehandlung mit C++ 259
Fehlerbehandlungen in C und C++ 260
Ignorieren einer Statusmeldung 260
Statusabfrage 261
Asynchrone Signale 262
Wiederaufsetzpunkte 265
Konventionelle Fehlerbehandlung in C++ 267
Objekte und Zustandseigenschaften 268
Fehlerhandler für die Speicherverwaltung 270
Strukturierte Fehlerbehandlung in C++ 273
Garantierte Fehlerbehandlung 273
Neue Schlüsselwörter 274
Allgemeine Abbruchfunktion 277
Setzen der allgemeinen Abbruchfunktion 277
Mehrstufige Fehlerbehandlung 279
|
Seite 8 Einsteigerseminar C++ |
Behandlung des Default-Falles 281
Speicherverwaltungsfehler bei new 281
Allokierungsfehler im Standard-Entwurf 283
Liste der möglichen Exceptions 285
Behandlung von Fehlergruppen 288
Einfache Gruppenbildung über Konstante 288
Aufbau von Fehlerhierarchien 288
Dynamische Typinformation 291
Implizite Typverwendung 291
Dynamische Ermittlung des Typs 292
Typinformation mit "type_info" 293
Typermittlung mit "typeid" 294
Dynamische Typkonvertierung 295
Nachwort 301
Literatur- und Software-Verzeichnis 307
Glossar 309
|
Inhaltsverzeichnis Seite 9 |
|
Seite 10 Einsteigerseminar C++ |