Inhaltsverzeichnis

  1. Inhaltsverzeichnis

  2. Vorwort

    1. C++ - die Sprache der Praxis

  3. Einleitung

    1. Computersprachen und Problemlösungen

    2. Von C zu C++

      1. Grundidee der OOP

      2. Entwicklungsgeschichte von C++

  4. Das Typkonzept in C

      1. Was ist ein Datentyp?

      2. Datentyparten

    1. Definition privater Typen in C

    2. Definitionen und Deklarationen

    3. Typdefinition mit Strukturen

    4. Definition von strukturierten Variablen

    5. Operationen mit strukturierten Variablen

      1. Operatorfunktionen

      2. Informationsdateien

      3. Übersetzen und Linken

      4. Projekte bei IDE's (Integrierte Entwicklungsumgebung)

    6. Probleme und Gefahren bei C

  5. Von der Struktur zur Klasse - von C zu C++

    1. Die Klasse

      1. Begriffe der OOP

      2. Aufbau einer Informationsdatei mit Klassen

      3. Benennung der Informationsdatei

      4. Implementierung der Methoden

      5. Arbeiten mit Objekten

    2. Bindung

      1. Botschaftenkonzept und andere Begriffe

  6. Konstruktoren und Destruktor

      1. Operationen mit Variablen

      2. Initialisierung für Objekte

      3. Konstruktor

    1. Überlagerung von Methoden

      1. Initialisierte Parameter

    2. Destruktor

  7. Dynamische Speicherverwaltung

    1. Ein Überblick

      1. Die Halde, der Heap

      2. Funktionen malloc() und free()

      3. Die Operatoren “new” und “delete”

      4. Anlegen von Feldern mit Grunddatentypen

    2. Dynamische Objekte

      1. Ein Beispiel: die Zeile

      2. Hinweise zur Weiterarbeit

  8. Parameterübergabe bei Unterprogrammen

      1. Formale und aktuelle Parameter

      2. Übergabemethoden: per Wert oder per Referenz

      3. Allgemeine Referenz oder Alias-Variable

      4. Ablauf eines Unterprogrammaufrufes

      5. Der Kopier-Konstruktor

  9. Überlagerung von Operatoren

      1. Aufruf der Operatormethoden

      2. Typwandlung mit dem Schlüsselwort “operator”

  10. Objekte zur Ein- und Ausgabe

      1. Ein- und Ausgaben bei C

      2. Probleme mit “printf()”

      3. Standardobjekte: “cout”, “cin”, “cerr”

      4. Arbeiten mit den Standardobjekten

      5. Aufbau einer Operatorfunktion

  11. Befreundete Funktionen und Klassen

      1. Befreundete Funktionen

    1. Befreundete Klassen

      1. Drei Arten von Funktionen

  12. Optimierung beim Arbeiten mit Objekten

      1. Optimierung durch Referenzübergaben

      2. Optimierung mit “inline”-Funktionen

  13. Elemente der Klasse

  14. Wiederverwendung von Software und Vererbung

      1. Möglichkeiten der Wiederverwendung von Software

      2. Objekte als Elemente einer Klasse

    1. Wiederverwendung durch Vererbung

      1. Erweiterung des Schutzkonzeptes in Klassen

      2. Offene und geschlossene Vererbung

    2. Einfache und mehrfache Vererbung

      1. Klassendefinition mit mehrfacher Vererbung

      2. Virtuelle Basisklasse

      3. Beispiel für die Vererbung - ein Fenstersystem für den PC

      4. Kopierkonstruktoren für abgeleitete Klassen

  15. Späte Bindung oder Polymorphismus

      1. Bindung Objekt - Methode

      2. Frühe Bindung

      3. Späte Bindung

      4. Späte Bindung und Botschaftenkonzept

  16. Mehrsprachiges Programmieren

      1. Einbinden von C Programmen

      2. Einfügen von Assemblerbefehlen

  17. Ein- und Ausgabebibliothek

      1. Arbeiten mit Dateien

      2. Statustest

      3. Formatfreie E/A

      4. Formatierung der Verbindung - Manipulatoren

  18. Typkonvertierung

    1. Typkonvertierungen in C

    2. Funktionale Schreibweise

      1. Funktionale Schreibweise für Basisdatentypen

      2. Funktionale Schreibweise für Klassen

    3. Klassen-Konvertierungsoperatoren

      1. Typkonvertierungen bei Vererbungen

    4. Neue Konvertierungsoperatoren in C++

      1. Der Operator "const_cast"

      2. Der Operator "static_cast"

      3. Der Operator "dynamic_cast"

      4. Der Operator "reinterpret_cast"

      5. Tendenzen in der Typkonvertierung

  19. Templates/Codeschablonen

    1. Überlagerte Funktionen

    2. Funktions-Templates

      1. Typangaben innerhalb von Templates

      2. Linken von Template-Funktionen

      3. Explizite Deklaration von generierten Funktionen

    3. Template-Makros

    4. Klassen-Templates

      1. Containerklassen

      2. Behandlung von eigenen Klassen

      3. Templates mit Wertparametern

      4. Wert-Parameter und statischer Speicher

    5. Templates und Bibliotheken

    6. Problem der Fehlerbehandlung

  20. Fehlerbehandlung mit C++

    1. Fehlerbehandlungen in C und C++

      1. Ignorieren einer Statusmeldung

      2. Statusabfrage

      3. Asynchrone Signale

      4. Wiederaufsetzpunkte

    2. Konventionelle Fehlerbehandlung in C++

      1. Objekte und Zustandseigenschaften

      2. Fehlerhandler für die Speicherverwaltung

    3. Strukturierte Fehlerbehandlung in C++

      1. Garantierte Fehlerbehandlung

      2. Neue Schlüsselwörter

      3. Allgemeine Abbruchfunktion

      4. Setzen der allgemeinen Abbruchfunktion

      5. Mehrstufige Fehlerbehandlung

      6. Behandlung des Default-Falles

      7. Speicherverwaltungsfehler bei new

      8. Allokierungsfehler im Standard-Entwurf

      9. Liste der möglichen Exceptions

    4. Behandlung von Fehlergruppen

      1. Einfache Gruppenbildung über Konstante

      2. Aufbau von Fehlerhierarchien

  21. Dynamische Typinformation

    1. Implizite Typverwendung

    2. Dynamische Ermittlung des Typs

      1. Typinformation mit "type_info"

      2. Typermittlung mit "typeid"

    3. Dynamische Typkonvertierung

  22. Nachwort

  23. Literatur- und Software-Verzeichnis

  24. Glossar