Next:
Vorwort
Up:
C++-Entwicklung mit Linux
Previous:
C++-Entwicklung mit Linux
 
Index
Contents
Contents
Vorwort
Dieses Buch ist für alle,
Ziele und Besonderheiten des Buchs
Voraussetzungen
Organisation des Buchs
Typographische Konventionen
Aktuelle Ergänzungen
Danksagungen
Programmieren unter Linux
Das Unix-Betriebssystem
Die Unix-Familie
Besondere Eigenschaften von Unix
Die Werkzeug-Philosophie
Linux
Der Kernel
Distributionen
Kompatibilität und Portabilität
Kommerzielle und freie Software
Das GNU-Projekt
Die GNU General Public License
Der Erfolg freier Software
Programmentwicklung in Unix
Wichtige Begriffe
Systemdateien zur Entwicklung
Übungsfragen
Grundlagen der objektorientierten Programmierung in C++
Grundideen
Beherrschung der Komplexität
Rückblick auf strukturiertes Programmieren
Objekte
Klassen
Methoden und Prozessabstraktion
Datenabstraktion
Zusammenfassung
Übungsaufgaben
Die C++-Programmiersprache
Historisches
C++ und C
C++ und Linux
Das erste C++-Programm
Datentypen und Typumwandlung
Operatoren
Ausdrücke
Zusammenfassung
Übungsaufgaben
Umgang mit dem GNU-C++-Compiler
Installation
Aufruf und Optionen
Name für die ausführbare Datei
Debug-Informationen
Fehler und Warnungen
Kompilierung zur Objektdatei
Pfade zu Header-Dateien
Bibliotheken
Optimierung
Info-Seiten
Editieren mit
NEdit
Zusammenfassung
Übungsaufgaben
Klassen und Objekte
Klassendeklaration und -definition
Objekte von Klassen
Zugriffsbeschränkungen
Freunde
Zusammenfassung
Übungsaufgaben
Funktionen und Methoden
Funktionen in C++
Der Prototyp
Überladen von Funktionen
Überladen von main()
Vorgabewerte für Parameter
Referenzen und Parameterübergabe
Zugriffsroutinen
Inline-Funktionen
Zusammenfassung
Übungsaufgaben
Konstruktoren und Destruktoren
Überblick über Konstruktoren
Standardkonstruktor
Allgemeine Konstruktoren
Initialisierung mit Listen
Kopierkonstruktor
Typumwandlungskonstruktor
Destruktoren
Beispiel: Benutzerinformationen
Zusammenfassung
Übungsaufgaben
Vererbung und Polymorphismus
Basisklassen und abgeleitete Klassen
Vererbung in C++
Erzeugung von Unterklassenobjekten
Zugriffsbeschränkungen
Mehrfachvererbung
Polymorphismus
Rein virtuelle Funktionen und abstrakte Klassen
Zusammenfassung
Übungsaufgaben
Programmieren mit C++
Basiselemente
Bedingungen
Mehrfache Auswahl
Schleifen
Zusammenfassung
Übungsaufgaben
Dateien und Ströme
Standardein- und -ausgabe
Ein- und Ausgabe mit Dateien
Positionierung des Dateizeigers
Ausgabeformatierung
Beispiel: Umrechung DM - Euro
Zusammenfassung
Übungsaufgaben
Felder, Zeiger und dynamische Speicherverwaltung
Felder (Arrays)
Zeichenketten
Zeiger
Dynamische Speicherverwaltung
Konstruktoren und Destruktoren
Beispiel: CGI-Programmierung
Zusammenfassung
Übungsaufgaben
Die C-Bibliothek
Umfang der C-Bibliothek
Das
man
-Kommando
Mathematische Standardfunktionen (
cmath
)
Numerische Limits (
climits
und
cfloat
)
Auswertung von Fehlern bei Bibliotheksfunktionen (
cerrno
)
Behandlung von Signalen (
csignal
)
Allgemeine Utilities (
cstdlib
)
Ein- und Ausgabefunktionen (
cstdio
)
Zugriff auf und Manipulation von
char
-Strings (
cstring
)
Zusammenfassung
Übungsaufgaben
Tipps und Konventionen
Namenskonventionen
Projektorganisation
Programmierstil
Sicheres Programmieren
C++-Programmierstil
Zusammenfassung
Fortgeschrittenes C++
Namensräume
Definition
Zugriff auf Bezeichner in Namensräumen
Zusammenfassung mehrerer Namensräume
Verschachtelte Namensräume
Zusammenfassung
Übungsaufgaben
Templates
Funktionstemplates
Organisation des Quelltextes
Klassentemplates
Zusammenfassung
Übungsaufgaben
Die STL: die Containerklassen der C++-Standardbibliothek
Namenskonventionen
Strings
Container
Iteratoren
Algorithmen
Zusammenfassung
Übungsaufgaben
Operatoren zur Typumwandlung
Der static_cast-Operator
Der dynamic_cast-Operator
Der const_cast-Operator
Der reinterpret_cast-Operator
Zusammenfassung
Übungsaufgaben
Überladen von Operatoren
Operatorfunktionen und -methoden
Arten von Operatoren
Der Indexoperator
Der Inkrementoperator
Der Zuweisungsoperator
Vergleiche und mathematische Operatoren
Operatoren als Freunde
Ein- und Ausgabeoperator
Typumwandlungsoperator
Allgemeine Prinzipien
Zusammenfassung
Übungsaufgaben
Ausnahmebehandlung (Exceptions)
Behandlung von Fehlersituationen
Exception Handling
Allgemeine Syntax
Auffangen der Ausnahmen
Beispiel: Vektor
Exceptions und die Standardbibliothek
Tipps und Hinweise
Zusammenfassung
Übungsaufgaben
Editoren für die Programmierung
vi
Weitere Informationen
Starten und Beenden
Die Bearbeitungsmodi
Bewegen des Cursors
Text schreiben und löschen
Suchen und Ersetzen
Speichern und Laden
Kopieren und Verschieben
Weitere Befehle
Zusammenfassung
Der XEmacs-Editor
Grundlegende Befehle
Suchen und Ersetzen
Ausschneiden, Kopieren und Einfügen
Modi
Fazit
Weitere Editoren
gEdit
KWrite
XCoral
Und was sonst?
Werkzeuge für die Softwareentwicklung
Steuerung der Übersetzung mit Make-Dateien
Aufbau von Makefiles
Arbeiten mit
make
Makros
Eingebaute Regeln
make
für Fortgeschrittene
Zusammenfassung
Fehlersuche mit dem Debugger
Theoretische Fehlerquellen
Statusausgaben im Code
Ein fehlerhaftes Programm
Fehlersuche mit
gdb
Der grafische Debugger
DDD
Fehlervermeidung durch die Überprüfung von Vorbedingungen
Zusammenfassung
Versionskontrolle mit
RCS
Versionskontrolle mit Linux
Vorgehensweise
Registrieren
Einchecken
Auschecken
Überblick über Änderungen
Einheitliches Etikett
Makros im Quelltext
Zusammenfassung
Integrierte Entwicklungsumgebungen
XEmacs als IDE
Der Editor
Start des Compilers
Start des Programms und des Debuggers
Versionsverwaltung mit XEmacs
Dateivergleich mit Ediff
Zusammenfassung
Source Code Engineering mit SNiFF+
Überblick über die SNiFF-Umgebung
Projekte in SNiFF+
Intelligente Browser
Editieren, Kompilieren und Debuggen
Entwickeln im Team
Zusammenfassung
Weitere Entwicklungsumgebungen
Source Navigator
CodeWarrior
KDevelop
Zusammenfassung
Bibliography
Index
thomas@cpp-entwicklung.de
(C) T. Wieland, 2001. Alle Rechte vorbehalten.