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++