lehrerbibliothek.deDatenschutzerklärung
Praktische C++ Programmierung  Mit Kontrollfragen und Übungen; Deutsche Ausgabe der 2. Auflage
Praktische C++ Programmierung


Mit Kontrollfragen und Übungen; Deutsche Ausgabe der 2. Auflage

Steve Oualline

O'Reilly Verlag GmbH & Co. KG
EAN: 9783897213586 (ISBN: 3-89721-358-3)
566 Seiten, kartoniert, 18 x 23cm, November, 2003, Deutsche Übersetzung von Matthias Kalle Dalheimer & Torsten Wilhelm

EUR 42,00
alle Angaben ohne Gewähr

Umschlagtext
C++ ist nicht umsonst eine der beliebtesten Programmiersprachen: Ihre hohe Flexibiliät und Leistungsfähigkeit ermöglichen es Software-Entwicklern, Informationen schnell und effizient zu organisieren und zu verarbeiten. Anfänger brauchen allerdings eine Weile, bis sie diese relativ komplexe Hochsprache beherrschen, selbst wenn sie auf C-Kenntnisse zurückgreifen können.



Praktische C++-Programmierung ist eine vollständige Einführung in C++, mit einem starken Fokus auf allen Aspekten der "echten" Entwicklungspraxis. Es ist eine Sache, die Strukturen und Mechanismen der Sprache zu lernen, genauso wichtig ist es aber, Fehler in eigenen und fremden Programmen finden zu können, Code zu schreiben, der auch Jahre später noch leicht zu verstehen, zu warten und zu erweitern ist. Steve Oualline erläutert den gesamten Lebenszyklus eines Programms und gibt unzählige Tipps für die Gestaltung lesbarer, modifizierbarer Programme. Kontrollfragen und Aufgaben helfen, das Erklärte nachzuvollziehen und zu verinnerlichen.



Aus dem Inhalt:



• Grundlagen der Programmierung

• Fragen des guten Stils

• Einfache Deklarationen und Ausdrücke

• Datentypen

• Kontrollstrukturen

• Der Programmierprozess

• Der C++-Präprozessor

• Bit-Operationen

• Klassen, Zeiger und Strukturen

• Modulare Programmierung

• Templates und die STL

• Design, Debugging und der ganze Software-Zyklus
Verlagsinfo
Praktische C++-Programmierung richtet sich an alle, die C++ richtig lernen wollen. Sei es mit Programmiervorkenntnissen oder ohne – hier lernen die Leser, saubere und nützliche C++-Programme zu schreiben. Kompakte Kapitel decken alle wichtigen Aspekte der Programmierung ab, inklusive Software-Design, objektorientierte Konzepte und Debugging. Am Ende jedes Kapitels lassen sich die erworbenen Kenntnisse durch Übungen und Kontrollfragen überprüfen.

Aus dem Inhalt:

• C++-Syntax
• Programmierstandards und -techniken
• Objektklassen erzeugen und verwenden
• Templates
• Debugging und Optimierung
• Den C++-Präprozessor verwenden
• Dateiein- und -ausgabe

Inhaltsverzeichnis
Vorwort

I Die Grundlagen

1 Was ist C++?

Ein kurzer historischer Abriss über C++
Der Aufbau von C++
Wie man C++ lernt

2 Grundlagen des Programmierens

Programme vom Konzept zur Ausführung
Ein richtiges Programm entwickeln
Das Hilfesystem unter Unix
Hilfesysteme in IDEs
Programmieraufgaben

3 Stil

Kommentare
C++-Code
Benennungsstil
Code-Religionen
Einrückungen und Code-Formatierung
Klarheit
Einfachheit
Konsistenz und Organisation
Hinweise zum Weiterlesen
Zusammenfassung

4 Grundlegende Deklarationen und Ausdrücke

Die grundlegende Struktur von Programmen
Einfache Ausdrücke
Das Ausgabeobjekt std::cout
Variablen und Speicher
Variablendeklarationen
Integerwerte
Zuweisungen
Fließkommazahlen
Fließkommadivisionen versus Integerdivisionen
Zeichen
Breite Zeichen (Wide Characters)
Der Boolesche Typ
Programmieraufgaben
Antworten zu den Fragen in diesem Kapitel

5 Arrays, Qualifier und das Einlesen von Zahlen

Arrays (Felder)
Strings
Daten einlesen
Variablen initialisieren
Mehrdimensionale Arrays
C-Strings
Verschiedene Integer-Typen
Arten von Fließkommawerten
Konstanten- und Referenzdeklarationen
Qualifier
Hexadezimale und oktale Konstanten
Abkürzungsoperatoren
Nebeneffekte
Programmieraufgaben
Antworten zu den Fragen in diesem Kapitel

6 Entscheidungs- und Steueranweisungen

Die if-Anweisung
Die else-Anweisung
Wie man std::strcmp nicht verwenden sollte
Schleifenanweisungen
Die while-Schleife
Die break-Anweisung
Die continue-Anweisung
Nebeneffekte durch Zuweisungen
Programmieraufgaben
Antworten zu den Fragen in diesem Kapitel

7 DerProgrammierprozess

Einen Arbeitsbereich einrichten
Die Spezifikation
Programmentwurf
Der Prototyp
Das Makefile
Testen
Debugging
Pflege
Versionen
Elektronische Archäologie
Notizen im Programm
Benutzen Sie den Debugger
Verwenden Sie den Texteditor als Browser
Kommentare hinzufügen
Programmieraufgaben

II Die Anfänge der Programmierung

8 Weitere Kontrollanweisungen

Die for-Schleife
Die switch-Anweisung
switch, break und continue
Programmieraufgaben
Antworten zu den Fragen in diesem Kapitel

9 Gültigkeitsbereich von Variablen und Funktionen

Gültigkeitsbereiche und Speicherklassen
Namensräume
Funktionen
Zusammenfassung der Parametertypen
Rekursion
Grundlagen der strukturierten Programmierung
Programmierung in der Welt da draußen
Programmieraufgaben
Antworten zu den Fragen in diesem Kapitel

10 Der C++-Präprozessor

Die #define-Anweisung
Bedingte Kompilierung
#include-Dateien
Parametrisierte Makros
Fortgeschrittene Features
Zusammenfassung
Programmieraufgaben
Antworten zu den Fragen in diesem Kapitel

11 Bit-Operationen

Bit-Operatoren
Der UND-Operator (&)
Bitweises ODER (|)
Das bitweise exklusive ODER (^)
Der Einerkomplement-Operator (NICHT) (~)
Die Verschiebeoperatoren (<<, >>)
Bits setzen, löschen und abfragen
Bitmap-Grafiken
Programmieraufgaben
Antworten zu den Fragen in diesem Kapitel

III Fortgeschrittene Typen und Klassen

12 Fortgeschrittene Typen

Strukturen
Unions
typedef
Aufzählungstypen
Bit-Arrays oder gepackte Strukturen
Arrays von Strukturen
Programmieraufgaben
Antworten zu den Fragen in diesem Kapitel

13 Einfache Klassen

Stacks
Ein verbesserter Stack
Eine Klasse verwenden
Einführung in Konstruktoren und Destruktoren
Automatisch erzeugte Methoden
Abkürzungen
Stilfragen
Strukturen versus Klassen
Programmieraufgaben

14 Mehr über Klassen

Freunde
Konstante Funktionen
Konstante Member
Statische Member-Variablen
Statische Methoden
Die Bedeutung von static
Programmieraufgaben

15 Einfache Zeigertechniken

const-Zeiger
Die Ausgabe von Zeigern
Zeiger und Arrays
Der reinterpret_cast
Zeiger und Strukturen
Kommandozeilenargumente
Programmierübungen
Antworten auf die Fragen dieses Kapitels

IV Fortgeschrittene Programmierkonzepte

16 Ein-und Ausgabe für Dateien

Die E/A-Mechanismen von C++
Routinen zum Konvertieren
Binär- und ASCII-Dateien
Das Rätsel um das Zeilenende
Binäre Ein- und Ausgaben
Pufferprobleme
Ungepufferte Ein- und Ausgaben
Entwurf von Dateiformaten
Die E/A-Routinen von C
Konvertierungsroutinen von C
Die binäre E/A von C
C-artige Ein- und Ausgabe im Vergleich zur C++-Ein- und Ausgabe
Programmierübungen
Antworten auf die Fragen dieses Kapitels

17 Debuggen und Optimieren

Code-Reviews
Debuggen
Begutachten der Ausgaben
Interaktive Debugger
Debuggen einer binären Suche
Interaktives Debuggen: Tipps und Tricks
Laufzeitfehler
Optimierung
Wie wird optimiert?
Fallstudie: Inline-Funktionen und normale Funktionen
Fallstudie: Optimierung eines Render-Algorithmus
Programmierübungen
Antworten auf die Fragen dieses Kapitels

18 Überladen von Operatoren

Erstellen einer Klasse für Festkommazahlen
Operator-Funktionen
Operatoren als Member-Funktionen
Schönheitsfehler
Die vollständige Definition der Festkomma-Klasse
Programmierübungen
Antworten auf die Fragen dieses Kapitels

19 Gleitkommazahlen

Gleitkommaformat
Addition und Subtraktion
Multiplikation und Division
Überlauf und Unterlauf
Rundungsfehler
Genauigkeit
Minimieren von Rundungsfehlern
Bestimmen der Genauigkeit
Genauigkeit und Geschwindigkeit
Potenzreihen
Programmierübungen

20 Fortgeschrittene Zeigertechniken

Zeiger, Strukturen und Klassen
Der Operator delete
Verkettete Listen
Sortierte Listen
Bidirektionale Listen
Bäume
Drucken eines Baumes
Der Rest des Programms
Datenstrukturen für ein Schachprogramm
Programmierübungen
Antworten auf die Fragen dieses Kapitels

21 Fortgeschrittene Klassentechniken

Abgeleitete Klassen
Virtuelle Funktionen
Virtuelle Klassen
Wie Sie Funktionen in abgeleiteten Klassen verstecken
Konstruktoren und Destruktoren in abgeleiteten Klassen
Der Operator dynamic_cast
Zusammenfassung
Programmierübungen
Antworten auf die Fragen dieses Kapitels

V Weitere Features von C++

22 Ausnahmen (Exceptions)

Ausnahmen für die Stack-Klasse
Ausnahmen verglichen mit assert
Programmierübungen

23 Modulare Programmierung

Module
public und private
Die Speicherklasse extern
Header
Die Implementierung des Moduls
Ein Programm, das unbegrenzte Arrays nutzt
Ein Makefile für mehrere Dateien
Verwenden des unbegrenzten Arrays
Aufteilen einer Aufgabe in Module
Richtlinien für den Entwurf von Modulen
Programmierübungen
Inhalt

24 Templates

Was ist ein Template?
Templates: Der harte Weg
Templates: Der C++-Weg
Spezialisierungen
Klassen-Templates
Spezialisierung von Klassen
Implementierungsdetails
Erweiterte Features
Zusammenfassung
Programmierübungen

25 Standard Template Library

Grundlagen der STL
Kursliste - Eine Menge von Studenten
Realisierung einer Warteliste
Speichern von Noten in einer Map
Alles zusammen
Praktische Belange bei der Verwendung der STL
Weitere Informationen
Programmierübungen

26 Programmentwurf

Entwurfsziele
Entwurfsfaktoren
Entwurfsprinzipien
Programmieren
Objekte
Reale Entwurfstechniken
Schlussfolgerung

27 Und jetzt alles zusammen

Anforderungen
Code-Entwurf
Programmierung
Funktionale Beschreibung
Testen
Revisionen
Eine letzte Warnung
Programmdateien
Programmierübungen

28 Von C zu C++

Funktionen im K&R-Stil
struct
malloc und free
Strukturen zu Klassen machen
setjmp und longjmp
Mischen von C und C++
Zusammenfassung
Programmierübungen

29 Die versteckten Winkel von C++

do/while
goto
Das Konstrukt ?:
Der Kommaoperator
Überladen des ()-Operators
Zeiger auf Member
Die Anweisung asm
Der Qualifizierer mutable
Typidentifikation zur Laufzeit
Trigraph-Sequenzen
Antworten auf die Fragen dieses Kapitels

30 Die 10 Gebote und andere Programmier-Weisheiten

Allgemeines
Entwurf
Deklarationen
switch-Anweisung
Präprozessor
Stil
Kompilieren
Die zehn Gebote für C++-Programmierer
Eine letzte Bemerkung
Antworten auf die Fragen dieses Kapitels

VI Anhang

A ASCII-Tabelle

B Wertebereiche

C Prioritäten von Operatoren

D Berechnung der Sinusfunktion mit einer Potenzreihe

E Ressourcen

Index