Jürgen Wolf: C++ von A bis Z, m. CD-ROM, Fester Einband
C++ von A bis Z, m. CD-ROM
- Das umfassende Handbuch. Mit Zugangscode im Buch für Updates
Lassen Sie sich über unseren eCourier benachrichtigen, falls das Produkt bestellt werden kann.
- Verlag:
- Galileo Press, 05/2009
- Einband:
- Fester Einband, Lesebändchen
- ISBN-13:
- 9783836214292
- Umfang:
- 1247 Seiten
- Sonstiges:
- m. Abb.
- Ausgabe:
- 2., aktualis. Aufl.
- Copyright-Jahr:
- 2009
- Gewicht:
- 1938 g
- Maße:
- 240 x 170 mm
- Stärke:
- 65 mm
- Erscheinungstermin:
- 15.5.2009
- Serie:
- Galileo Computing
Beschreibung
Dieses Buch ist Lehr- und Nachschlagewerk in einem: Es bietet einen sehr ausführlichen Einstieg in die Sprache C++ und die Objektorientierung. Darüber hinaus enthält es Kapitel zu Profi-Themen, wie Socket- und Cross-Plattform-Entwicklung oder GUI- und Multimedia-Programmierung. Die Praxisnähe und die herausragende fachliche Qualität machen es zu einem unentbehrlichen Begleiter in Studium und Beruf.
Aus dem Inhalt:
ANSI C++ from Scratch : Bezeichner, Basisdatentypen, Konstanten, Kommentare, Kontrollstrukturen, Funktionen, Zeiger, Referenzen, Arrays, Namensräume, Typumwandlungen, ...
C++ advanced : Eigene Module erstellen, Grundlagen der UML, guter Programmierstil, Boost-Bibliothek, Netzwerkprogrammierung, Crossplattform-Entwicklung, GUI- und Multimedia-Bibliotheken
Zusätzlich auf CD: Openbook zu C : Wie war das noch mal in C? Schauen Sie nach! Das beiliegende Openbook ist leicht navigierbar und besonders zum Nachschlagen geeignet.
Inhaltsangabe
... Vorwort ... 17
... ... Über dieses Buch ... 17
... ... Zielgruppe ... 17
... ... C und C++ ... 18
... ... Betriebssystem ... 18
... ... Übersicht ... 18
... ... Buch-CD ... 20
... ... Danksagung ... 21
... Vorwort des Fachgutachters ... 23
... ... C++ -- nur eine Erweiterung von C? ... 23
1 ... Grundlagen in C++ ... 25
... 1.1 ... Die Entstehung von C++ ... 25
... 1.2 ... Erste Schritte der C++-Programmierung ... 31
... 1.3 ... Symbole von C++ ... 35
... 1.4 ... Basisdatentypen ... 39
... 1.5 ... Konstanten ... 53
... 1.6 ... Standard Ein-/Ausgabe-Streams ... 54
... 1.7 ... Operatoren ... 59
... 1.8 ... Kommentare ... 68
... 1.9 ... Kontrollstrukturen ... 69
... 1.10 ... Funktionen ... 99
... 1.11 ... Präprozessor-Direktiven ... 122
2 ... Höhere und fortgeschrittene Datentypen ... 133
... 2.1 ... Zeiger ... 133
... 2.2 ... Referenzen ... 149
... 2.3 ... Arrays ... 152
... 2.4 ... Zeichenketten (C-Strings) -- char-Array ... 159
... 2.5 ... Arrays und Zeiger ... 166
... 2.6 ... Parameterübergabe mit Zeigern, Arrays und Referenzen ... 181
... 2.7 ... Rückgabewerte von Zeigern, Arrays und Referenzen ... 190
... 2.8 ... Fortgeschrittene Typen ... 197
3 ... Gültigkeitsbereiche, spezielle Deklarationen und Typumwandlungen ... 225
... 3.1 ... Gültigkeitsbereiche (Scope) ... 225
... 3.2 ... Namensräume (Namespaces) ... 228
... 3.3 ... C-Funktionen bzw. -Bibliotheken in einem C++Programm ... 244
... 3.4 ... Speicherklassenattribute ... 249
... 3.5 ... Typqualifikatoren ... 253
... 3.6 ... Funktionsattribute ... 255
... 3.7 ... Typumwandlung ... 255
4 ... Objektorientierte Programmierung ... 265
... 4.1 ... OOP-Konzept versus prozedurales Konzept ... 265
... 4.2 ... Klassen (fortgeschrittene Typen) ... 267
... 4.3 ... Mehr zu den Klassenmethoden (Klassenfunktionen) ... 295
... 4.4 ... Verwenden von Objekten ... 307
... 4.5 ... Operatoren überladen ... 358
... 4.6 ... Typumwandlung für Klassen ... 388
... 4.7 ... Vererbung (abgeleitete Klassen) ... 392
... 4.8 ... Polymorphismus ... 414
... 4.9 ... Mehrfachvererbung ... 463
5 ... Templates und STL ... 477
... 5.1 ... Funktions-Templates ... 477
... 5.2 ... Klassen-Templates ... 489
... 5.3 ... STL (Standard Template Library) ... 507
6 ... Exception-Handling ... 661
... 6.1 ... Exception-Handling in C++ ... 662
... 6.2 ... Eine Exception auslösen ... 662
... 6.3 ... Eine Exception auffangen -- Handle einrichten ... 663
... 6.4 ... Ausnahmeklassen (Fehlerklassen) ... 676
... 6.5 ... Standard-Exceptions ... 680
... 6.6 ... System-Exceptions ... 686
... 6.7 ... Exception-Spezifikation ... 688
7 ... C++-Standardbibliothek ... 695
... 7.1 ... Die String-Bibliothek (string-Klasse) ... 695
... 7.2 ... Ein-/Ausgabe Klassenhierarchie (I/O-Streams) ... 722
... 7.3 ... Numerische Bibliothek(en) ... 776
... 7.4 ... Typerkennung zur Laufzeit ... 814
8 ... Weiteres zum C++-Guru ... 821
... 8.1 ... Module ... 821
... 8.2 ... Von C zu C++ ... 830
... 8.3 ... "Altes" C++ ... 835
... 8.4 ... UML ... 837
... 8.5 ... Programmierstil ... 881
... 8.6 ... Entwicklungsstufen von Software ... 886
... 8.7 ... Boost ... 892
9 ... Netzwerkprogrammierung und CrossPlattform-Entwicklung in C++ ... 917
... 9.1 ... Begriffe zur Netzwerktechnik ... 918
... 9.2 ... Header-Dateien zur Socketprogrammierung ... 923
... 9.3 ... Client-Server-Prinzip ... 926
... 9.4 ... Erstellen einer Client-Anwendung ... 927
... 9.5 ... Erstellen einer Server-Anwendung ... 937
... 9.6 ... Cross-Plattform-Development ... 943
... 9.7 ... Mehrere Clients gleichzeitig behandeln ... 976
... 9.8 ... Weitere Anmerkungen zur Netzwerkprogrammierung ... 986
10 ... GUI- und Multimediaprogrammierung in C++ ... 993
... 10.1 ... GUI-Programmierung -- Überblick ... 993
... 10.2 ... Multimedia- und Grafikprogrammierung -- Überblick ... 998
... 10.3 ... GUI-Programmierung mit "wxWidgets" ... 1001
A ... Anhang ... 1207
... A. 1 ... Operatoren in C++ und dere
Auszüge aus dem Buch
1 Grundlagen in C++ (S. 25)
1.1 Die Entstehung von C++
Ursprünglich wurde C++ 1979 von Dr. Bjarne Stroustrup entwickelt, um Simulationsprojekte mit geringem Speicher- und Zeitbedarf zu programmieren. Auch hier lieferte (wie schon bei C) kein geringeres Betriebssystem als UNIX die Ursprungsplattform dieser Sprache. Stroustrup musste (damals noch bei den Bell Labs beschäftigt) den UNIX-Betriebssystemkern auf verteilte Programmierung hin analysieren.
Für größere Projekte verwendete Stroustrup bisher die Sprachen Simula - die allerdings in der Praxis recht langsam bei der Ausführung ist - und BCPL, die zwar sehr schnell ist, aber sich für große Projekte nicht eignete.
Simula und BCPL Simula gilt als Vorgänger von Smalltalk. Viele der mit Simula eingeführten Konzepte finden sich in modernen objektorientierten Programmiersprachen wieder.
BCPL (Kurzform für Basic Combined Programming Language) ist eine um 1967 von Martin Richards entwickelte kompilierte, systemnahe Programmiersprache, abgeleitet von der Combined / Cambridge Programming Language CPL.
Es handelt sich um eine Sprache aus der ALGOL-Familie. Homepage von Stroustrup Wer mehr über Bjarne Stroustrup erfahren möchte, findet unter der URL public. research. att. com/~bs / homepage. html seine Homepage. Stroustrup erweiterte die Sprache C um ein Klassenkonzept, wofür er die Sprache Simula-67 (mit der Bildung von Klassen, Vererbung und dem Entwurf virtueller Funktionen) und später dann Algol68 (Überladen von Operatoren, Deklarationen im Quelltext frei platzierbar) sowie Ada (Entwicklung von Templates, Ausnahmebehandlung) als Vorlage nahm. Heraus kam ein "C mit Klassen" (woraus etwas später auch C++ wurde).
C wurde als Ursprung verwendet, weil diese Sprache schnellen Code erzeugte, einfach auf andere Plattformen zu portieren ist und fester Bestandteil von UNIX ist. Vor allem ist C auch eine weitverbreitete Sprache, wenn nicht sogar die am weitesten verbreitete Sprache überhaupt. Natürlich wurde auch weiterhin auf die Kompatibilität von C geachtet, damit auch in C entwickelte Programme in C++-Programmen liefen.
Insgesamt wurde "C mit Klassen" zunächst um folgende Sprachelemente erweitert, auf die später noch eingegangen wird:
Klassenererbung (ohne Polymorphismus)
Konstruktoren, Destruktoren
Funktionen
Friend-Deklaration
Typüberprüfung Einige Zeit später, 1982, wurde aus "C mit Klassen" die Programmiersprache C++.
Der Inkrementoperator ++ am Ende des C sollte darauf hinweisen, dass die Programmiersprache C++ aus der Programmiersprache C entstanden ist und erweitert wurde. Folgende neue Features sind dann gegenüber "C mit Klassen" hinzugekommen:
virtuelle Funktionen
Überladen von Funktionen
Überladen von Operatoren
Referenzen
Konstanten
veränderbare Freispeicherverwaltung
verbesserte Typüberprüfung
Kommentare mit // am Zeilenende anfügen (von BCPL) 1985 erschien dann die Version 2.0 von C++, die wiederum folgende Neuerungen enthielt:
Mehrfachvererbung
abstrakte Klassen
statische und konstante Elementfunktionen
Erweiterung des Schutzmodells um das Schlüsselwort protected Relativ spät, 1991, fand das erste Treffen der ISO(International Organisation for Standardization)-Workgroup statt, um C++ zu standardisieren, was 1995 zu einem Draft Standard führte.
Allerdings dauerte es wiederum drei weitere Jahre, bis 1998 C++ dann endlich von der ISO genormt wurde (ISO/IEC 14882: 1998). Erweitert wurde C++ in dieser Zeit um folgende Features:
Templates
Ausnahmebehandlung
Namensräume
neuartige Typumwandlung
boolesche Typen
Natürlich entstanden während der Zeit der Weiterentwicklung von C++ auch eine Menge Standardbibliotheken wie bspw. die Stream-I/O-Bibliothek, die die bis dahin traditionellen C-Funktione
Biografie
Jürgen Wolf ist Softwareentwickler, Digitalfotograf und Autor aus Leidenschaft. C/C++, Perl, Linux und die Bildbearbeitung mit Photoshop Elements und GIMP sind seine Themen. Sein Traum: ein ruhiges Leben im Westen Kanadas. Und Bücher auf der Veranda schreiben.Anmerkungen:
Bitte beachten Sie, dass auch wir der Preisbindung unterliegen und kurzfristige Preiserhöhungen oder -senkungen an Sie weitergeben müssen.