Table Of Content;-_=_Scrolldown to the Underground_=_-;
C++ Programmieren mit Stil
http://kickme.to/tiger/
Inhalt
Vorige Seite: Eine Ebene höher: Nächste Seite: 1 Vorbemerkungen
Inhalt
l 1 Vorbemerkungen
m W as das Buch nicht ist
m 1 .2 Aufbau des Buchs
m 1 .3 Schreibweisen und Konventionen
m 1 .4 Übungsbeispiele und Entwicklungssysteme
m 1 .5 Die beigelegte CD
l 2 Einführung
m 2 .1 Die Programmiersprache C++
n 2 .1.1 Grundlagen von C++
n 2 .1.2 Die Entwicklung von C++
m 2 .2 Einfache C++-Programme
n 2 .2.1 Das erste Programm: Hello world!
n 2 .2.2 Variablen und Kontrollstrukturen
n 2 .2.3 Funktionen
l 3 Lexikalische Elemente von C++
m 3 .1 Sprachbeschreibung mit Grammatik
m 3 .2 Bezeichner
m 3 .3 Schlüsselwörter
m 3 .4 Literale
n 3 .4.1 Ganze Zahlen
n 3 .4.2 Fließkommazahlen
n 3 .4.3 Zeichen
n 3 .4.4 Zeichenketten
file:///D|/Cool Stuff/old/ftp/preview/mysql/C++_Programmieren_mit_Stil/Cppbuch/NODE3.HTM (1 von 11) [10.09.2000 10:01:17]
Inhalt
n 3 .4.5 Wahrheitswerte
m 3 .5 Operatoren und Begrenzer
n 3 .5.1 Operatoren
n 3 .5.2 Begrenzer
n 3 .5.3 Alternative Operatoren und Begrenzer
n 3 .5.4 Kommentare
l 4 Einfache Deklarationen und Basisdatentypen
m 4 .1 Die Begriffe Definition und Deklaration
m 4 .2 Basisdatentypen
n 4 .2.1 Der Datentyp bool
n 4 .2.2 Die Datentypen char und wchar_t
n 4 .2.3 Die int-Datentypen
n 4 .2.4 Fließkommadatentypen
n 4 .2.5 Der Datentyp void
m 4 .3 Aufzählungstypen
m 4 .4 Deklaration von Konstanten
l 5 Ausdrücke
m 5 .1 Auswertungsreihenfolge
m 5 .2 LValues und RValues
m 5 .3 Primäre Ausdrücke
m 5 .4 Postfix-Ausdrücke
m 5 .5 Unäre Ausdrücke
m 5 .6 Andere Ausdrücke
l 6 Anweisungen
m 6 .1 Ausdrucksanweisung
m 6 .2 Sprungmarken
m 6 .3 Blockanweisungen
m 6 .4 Deklaration
m 6 .5 Selektion
n D ie if else-Anweisung
n 6 .5.2 Die switch-Anweisung
m 6 .6 Iteration
n 6 .6.1 Die while-Anweisung
file:///D|/Cool Stuff/old/ftp/preview/mysql/C++_Programmieren_mit_Stil/Cppbuch/NODE3.HTM (2 von 11) [10.09.2000 10:01:17]
Inhalt
n D ie do while-Anweisung
n 6 .6.3 Die for-Anweisung
m 6 .7 Sprunganweisungen
n 6 .7.1 Die break-Anweisung
n 6 .7.2 Die continue-Anweisung
n 6 .7.3 Die return-Anweisung
n 6 .7.4 Die goto-Anweisung
l 7 Funktionen
m 7 .1 Einführung
m 7 .2 Deklaration und Definition von Funktionen
m 7 .3 Funktionsaufruf und Parameterübergabe
m 7 .4 Spezielle Funktionen
n 7 .4.1 Prozeduren
n 7 .4.2 Operator-Funktionen
m 7 .5 inline-Funktionen
m 7 .6 Vorbelegte Parameter
m 7 .7 Überladen von Funktionen
n 7 .7.1 Aufruf von überladenen Funktionen
n 7 .7.2 Überladen versus vorbelegte Parameter
m 7 .8 Rekursion
l 8 Höhere Datentypen und strukturierte Datentypen
m 8 .1 Referenzen
m 8 .2 Grundlegendes zu Zeigern
n 8 .2.1 Deklaration von Zeigern
n 8 .2.2 Adreßbildung
n 8 .2.3 Dereferenzierung von Zeigerwerten
n 8 .2.4 Anlegen von dynamischen Objekten
n 8 .2.5 Zerstören von dynamisch angelegten Speicherobjekten
n 8 .2.6 Zeigerkonstanten
n 8 .2.7 Spezielle Zeigertypen
n v oid-Zeiger
n Z eiger auf Funktionen
m 8 .3 Vektoren
file:///D|/Cool Stuff/old/ftp/preview/mysql/C++_Programmieren_mit_Stil/Cppbuch/NODE3.HTM (3 von 11) [10.09.2000 10:01:17]
Inhalt
n 8 .3.1 Vektoren und Zeiger
n 8 .3.2 Zeigerarithmetik
n 8 .3.3 Vektoren als Parameter
m 8 .4 Zeichenketten
m 8 .5 Parameterübergabe mit Zeigern und Referenzen
n 8 .5.1 Call by Value und Call by Reference
n 8 .5.2 Gegenüberstellung der zwei Arten der Parameterübergabe
m 8 .6 Strukturierte Datentypen: Klassen
n 8 .6.1 Definition von Klassen
n 8 .6.2 Die Elementoperatoren . und ->
l 9 Gültigkeitsbereiche, Deklarationen und Typumwandlungen
m 9 .1 Gültigkeitsbereiche, Namensräume und Sichtbarkeit
n 9 .1.1 Gültigkeitsbereiche
n 9 .1.2 Namensräume
n D eklaration und Verwendung von Namensräumen
n N amenlose Namensräume
m 9 .2 Deklarationen
n 9 .2.1 Speicherklassenattribute
n S peicherklasse auto
n S peicherklasse register
n S peicherklasse static
n S peicherklasse extern
n S peicherklasse mutable
n D er Zusammenhang zwischen Speicherklasse, Lebensdauer und Gültigkeit
n 9 .2.2 Typ-Qualifikatoren
n 9 .2.3 Funktionsattribute
n 9 .2.4 typedef
m 9 .3 Initialisierung
m 9 .4 Typumwandlungen
n 9 .4.1 Standard-Typumwandlung
n L Value-RValue-Typumwandlungen
n V ektor-Zeiger-Typumwandlungen
n F unktion-Zeiger-Typumwandlungen
file:///D|/Cool Stuff/old/ftp/preview/mysql/C++_Programmieren_mit_Stil/Cppbuch/NODE3.HTM (4 von 11) [10.09.2000 10:01:17]
Inhalt
n Q ualifikations-Typumwandlungen
n In tegral- und Gleitkomma-Promotionen
n In tegral- und Gleitkomma-Typumwandlungen
n G leitkomma-Integral-Typumwandlungen
n Z eiger-Typumwandlungen
n B asisklassen-Typumwandlungen
n B ool-Typumwandlungen
n 9 .4.2 Explizite Typumwandlung
n T ypumwandlung im C-Stil und im Funktionsstil
n N eue Cast-Operatoren
l 1 0 Module und Datenkapseln
m 1 0.1 Motivation
m 1 0.2 Vom Modul zur Datenkapsel
m 1 0.3 Module und Datenkapseln in C++
n 1 0.3.1 Die Schnittstellendatei
n 1 0.3.2 Die Implementierungsdatei
n 1 0.3.3 Modul-Klienten
n 1 0.3.4 Einige Kommentare zu Stack
m 1 0.4 Resümee
l 1 1 Das Klassenkonzept
m 1 1.1 Motivation
n 1 1.1.1 Klassen als Mittel zur Abstraktion
n 1 1.1.2 Klassen und das Geheimnisprinzip
m 1 1.2 Element-Funktionen
n 1 1.2.1 inline-Element-Funktionen
n 1 1.2.2 const-Element-Funktionen
m 1 1.3 this-Zeiger
m 1 1.4 Der Zugriffsschutz bei Klassen
n 1 1.4.1 Zugriffsschutz mit public, protected und private
n 1 1.4.2 friend-Funktionen und -Klassen
m 1 1.5 static-Klassen-Elemente
m 1 1.6 Geschachtelte Klassen
m 1 1.7 Spezielle Element-Funktionen und Operatoren
file:///D|/Cool Stuff/old/ftp/preview/mysql/C++_Programmieren_mit_Stil/Cppbuch/NODE3.HTM (5 von 11) [10.09.2000 10:01:17]
Inhalt
n 1 1.7.1 Konstruktoren
n O bjekt-Initialisierung mittels Initialisierungsliste
n Ü berladen von Konstruktoren
n D er Copy-Konstruktor
n 1 1.7.2 Destruktoren
n 1 1.7.3 Überladen von Operatoren
n A llgemeines zum Überladen von Operatoren
n Im plementierung von speziellen Operatoren
n D er Indexoperator []
n D er Operator ()
n D ie Operatoren new, delete
n D er Zuweisungsoperator =
n D ie Ein-/Ausgabeoperatoren >> und <<
n 1 1.7.4 Automatisch generierte Element-Funktionen und kanonische Form von
Klassen
n 1 1.7.5 Benutzerdefinierte Typumwandlungen
n T ypumwandlung mit Konstruktoren
n T ypumwandlungen mit Umwandlungsoperatoren
m 1 1.8 Weiterführende Themen
n 1 1.8.1 Zeiger auf Klassen-Elemente
n 1 1.8.2 Varianten
n 1 1.8.3 Bitfelder
m 1 1.9 Beispiele und Übungen
n 1 1.9.1 Klasse Date
n T hemenbereich
n K omplexität
n A ufgabenstellung
n 1 1.9.2 Klasse Counter
n T hemenbereiche
n K omplexität
n A ufgabenstellung
n 1 1.9.3 Gültigkeitsbereich, Sichtbarkeit und Lebensdauer
n T hemenbereiche
file:///D|/Cool Stuff/old/ftp/preview/mysql/C++_Programmieren_mit_Stil/Cppbuch/NODE3.HTM (6 von 11) [10.09.2000 10:01:17]
Inhalt
n K omplexität
n A ufgabenstellung
n 1 1.9.4 Klasse Calculator
n T hemenbereiche
n K omplexität
n A ufgabenstellung
n H intergrundwissen
n 1 1.9.5 Klasse List
n T hemenbereiche
n K omplexität
n A ufgabenstellung
n 1 1.9.6 Klasse Rational
n T hemenbereiche
n K omplexität
n A ufgabenstellung
l 1 2 Templates
m 1 2.1 Motivation
m 1 2.2 Funktions-Templates
n 1 2.2.1 Ausprägung von Funktions-Templates
n 1 2.2.2 Überladen von Funktions-Templates
m 1 2.3 Klassen-Templates
n 1 2.3.1 Definition von Klassen-Templates
n 1 2.3.2 Ausprägung von Klassen-Templates
n 1 2.3.3 Geschachtelte Template-Klassen und friend
n 1 2.3.4 Explizite Ausprägung und Spezialisierung
n 1 2.3.5 Template-Typen
m 1 2.4 Element-Templates
m 1 2.5 Beispiele und Übungen
n 1 2.5.1 Funktions-Template binSearch
n T hemenbereich
n K omplexität
n A ufgabenstellung
n H intergundwissen
file:///D|/Cool Stuff/old/ftp/preview/mysql/C++_Programmieren_mit_Stil/Cppbuch/NODE3.HTM (7 von 11) [10.09.2000 10:01:17]
Inhalt
n 1 2.5.2 List-Template
n T hemenbereich
n K omplexität
n A ufgabenstellung
n H intergrundwissen
n 1 2.5.3 Tree-Template
n T hemenbereich
n K omplexität
n A ufgabenstellung
n H intergrundwissen
l 1 3 Vererbung
m 1 3.1 Einführung
n 1 3.1.1 Was heißt Vererbung?
n 1 3.1.2 Begriffe im Zusammenhang mit Vererbung
m 1 3.2 Ableiten einer Klasse
m 1 3.3 Die Is-A-Beziehung
m 1 3.4 Vererbung und Gültigkeitsbereiche
m 1 3.5 Element-Funktionen bei abgeleiteten Klassen
n 1 3.5.1 Konstruktoren
n 1 3.5.2 Copy-Konstruktor
n 1 3.5.3 Destruktor
n 1 3.5.4 Zuweisungsoperator
n 1 3.5.5 Überschreiben von ererbten Methoden
m 1 3.6 Spezifikation von Basisklassen
m 1 3.7 Beispiele und Übungen
n 1 3.7.1 Klasse Word
n T hemenbereich
n A ufgabenstellung
l 1 4 Polymorphismus und spezielle Aspekte der Vererbung
m 1 4.1 Polymorphismus
m 1 4.2 Virtuelle Element-Funktionen
n 1 4.2.1 Deklaration von virtuellen Element-Funktionen
n 1 4.2.2 Aufruf von virtuellen Element-Funktionen
file:///D|/Cool Stuff/old/ftp/preview/mysql/C++_Programmieren_mit_Stil/Cppbuch/NODE3.HTM (8 von 11) [10.09.2000 10:01:17]
Inhalt
n 1 4.2.3 Virtuelle Destruktoren
n 1 4.2.4 Überschreiben von nicht virtuellen Element-Funktionen
n 1 4.2.5 Is-A-Vererbung als Programming by Contract
n 1 4.2.6 Repräsentation polymorpher Objekte im Speicher
m 1 4.3 Abstrakte Basisklassen und rein virtuelle Element-Funktionen
m 1 4.4 Mehrfachvererbung
m 1 4.5 Virtuelle Basisklassen
m 1 4.6 Laufzeit-Typinformation
n 1 4.6.1 Typumwandlung mit dynamic_cast
n 1 4.6.2 Der typeid-Operator
n 1 4.6.3 Erweiterung und Einsatz der Typinformation
m 1 4.7 Beispiele und Übungen
n 1 4.7.1 Klassenhierarchie Animals
n T hemenbereich
n K omplexität
n A ufgabenstellung
n 1 4.7.2 CellWar
n T hemenbereich
n K omplexität
n A ufgabenstellung
n 1 4.7.3 Klassenhierarchie Maze
n T hemenbereich
n K omplexität
n A ufgabenstellung
n 1 4.7.4 Klassenhierarchie Kellerbar
n T hemenbereich
n K omplexität
n A ufgabenstellung
l 1 5 Ausnahmebehandlung
m 1 5.1 Motivation
m 1 5.2 Ausnahmebehandlung in C++
m 1 5.3 Auslösen von Ausnahmen und Ausnahme-Objekte
m 1 5.4 Ausnahme-Handler
file:///D|/Cool Stuff/old/ftp/preview/mysql/C++_Programmieren_mit_Stil/Cppbuch/NODE3.HTM (9 von 11) [10.09.2000 10:01:17]