ebook img

Jetzt lerne ich C++: Komplettes Starter-Kit: ANSI C++-Compiler auf der Buch-CD PDF

548 Pages·2000·8.1 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Jetzt lerne ich C++: Komplettes Starter-Kit: ANSI C++-Compiler auf der Buch-CD

Jetzt lerne ich C++ Jesse Liberty Deutsche Übersetzung: Frank Langenau Jetzt lerne ich C++ Komplettes Starter-Kit: ANSI C++-Compiler auf der Buch-CD Bitte beachten Sie: Der originalen Printversion liegt eine CD-ROM bei. In der vorliegenden elektronischen Version ist die Lieferung einer CD-ROM nicht enthalten. Alle Hinweise und alle Verweise auf die CD-ROM sind ungültig. MARKT&TECHNIK VERLAG Die Deutsche Bibliothek – CIP-Einheitsaufnahme Jetzt lerne ich C++ [Medienkombination]: komplettes Starterkit: ANSI C++-Compiler auf der Buch-CD / Jesse Liberty. – München : Markt und Technik Verlag, 2000 ISBN 3-8272-5663-1 Buch. – 2000 Die Informationen in diesem Produkt werden ohne Rücksicht auf einen eventuellen Patentschutz veröffentlicht. Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt. Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter Sorgfalt vorgegangen. Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Verlag, Herausgeber und Autoren können für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Für Verbesserungsvorschläge und Hinweise auf Fehler sind Verlag und Herausgeber dankbar. Autorisierte Übersetzung der amerikanischen Originalausgabe: Teach Yourself C++ in 24 Hours ©1999 by SAMS Publishing Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Die gewerbliche Nutzung der in diesem Produkt gezeigten Modelle und Arbeiten ist nicht zulässig. Fast alle Hardware- und Softwarebezeichnungen, die in diesem Buch erwähnt werden, sind gleichzeitig auch eingetragene Warenzeichen oder sollten als solche betrachtet werden. Umwelthinweis: Dieses Buch wurde auf chlorfrei gebleichtem Papier gedruckt. Die Einschrumpffolie – zum Schutz vor Verschmutzung – ist aus umweltverträglichem und recyclingfähigem PE-Material. 10 9 8 7 6 5 4 3 2 1 03 02 01 00 ISBN 3-8272-5663-1 © 2000 by Markt&Technik Verlag, ein Imprint der Pearson Education Deutschland GmbH, Martin-Kollar-Straße 10–12, D-81829 München/Germany Alle Rechte vorbehalten Einbandgestaltung: NOWAK werbeagentur & medien, Pfaffenhofen Übersetzung: Frank Langenau Lektorat: Erik Franz, [email protected] Herstellung: Claudia Bäurle, [email protected] Satz: text&form, Fürstenfeldbruck Druck und Verarbeitung: Media Print, Paderborn Printed in Germany Überblick Überblick Teil I Einführung in C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Stunde 1 Erste Schritte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Stunde 2 Die Teile eines C++-Programms . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Stunde 3 Variablen und Konstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Stunde 4 Ausdrücke und Anweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Stunde 5 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Teil II Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Stunde 6 Basisklassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Stunde 7 Mehr über Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Stunde 8 Programmsteuerung – weiterführende Themen . . . . . . . . . . . . . . 143 Teil III Speicherverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Stunde 9 Zeiger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Stunde 10 Zeiger – weiterführende Themen . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Stunde 11 Referenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 Stunde 12 Referenzen und Zeiger – weiterführende Themen . . . . . . . . . . . . 219 Teil IV Leistungsfähige Werkzeuge . . . . . . . . . . . . . . . . . . . . . . . . 235 Stunde 13 Funktionen – weiterführende Themen . . . . . . . . . . . . . . . . . . . . . . 237 Stunde 14 Überladen von Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 Stunde 15 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 5 Jetzt lerne ich C++ Teil V Vererbung und Polymorphie . . . . . . . . . . . . . . . . . . . . . . . 291 Stunde 16 Vererbung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 Stunde 17 Polymorphie und abgeleitete Klassen . . . . . . . . . . . . . . . . . . . . . . 315 Stunde 18 Polymorphie – weiterführende Themen . . . . . . . . . . . . . . . . . . . . . 331 Stunde 19 Verkettete Listen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 Teil VI Spezielle Themen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 Stunde 20 Spezielle Klassen und Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . 369 Stunde 21 Der Präprozessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 Teil VII Weiterführende Themen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431 Stunde 22 Objektorientierte Analyse und objektorientierter Entwurf . . . . . 433 Stunde 23 Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 Stunde 24 Exceptions und Fehlerbehandlung . . . . . . . . . . . . . . . . . . . . . . . . . 485 Teil VIII Anhang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 Anhang A Operatorvorrang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 Anhang B C++-Schlüsselwörter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 Anhang C Zahlensysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 Anhang D Die Buch-CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 6 Inhaltsverzeichnis Teil I Einführung in C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Stunde 1 Erste Schritte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Warum C++ die richtige Wahl darstellt . . . . . . . . . . . . . . . . . . . . . . 18 Vorbereitungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 C++, ANSI C++, Windows und andere Bereiche der Verwirrung . 23 Quellcode kompilieren und linken . . . . . . . . . . . . . . . . . . . . . . . . . 25 Der Entwicklungszyklus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 HELLO.CPP – Ihr erstes C++-Programm . . . . . . . . . . . . . . . . . . . . . 27 Fehler zur Kompilierzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Fragen und Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Stunde 2 Die Teile eines C++-Programms . . . . . . . . . . . . . . . . . . . . . . . . . 33 Die Teile eines einfachen Programms . . . . . . . . . . . . . . . . . . . . . . . 34 Kommentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Fragen und Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Stunde 3 Variablen und Konstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Was ist eine Variable? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Variablen definieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Mehrere Variablen gleichzeitig erzeugen . . . . . . . . . . . . . . . . . . . . 50 Werte an Variablen zuweisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 typedef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Wann verwendet man short und wann long? . . . . . . . . . . . . . . . . 53 Konstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Aufzählungskonstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Jetzt lerne ich C++ Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Fragen und Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Stunde 4 Ausdrücke und Anweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Anweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Zusammengesetzte Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Inkrementieren und Dekrementieren . . . . . . . . . . . . . . . . . . . . . . . 67 Rangfolge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Verschachtelte Klammern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Wahrheitswerte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Vergleichsoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Die if-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Geschweifte Klammern in verschachtelten if-Anweisungen . . . . 77 Logische Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Rangfolge der Vergleichsoperatoren . . . . . . . . . . . . . . . . . . . . . . . 81 Mehr über Wahr und Unwahr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Fragen und Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Stunde 5 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Was ist eine Funktion? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Funktionen deklarieren und definieren . . . . . . . . . . . . . . . . . . . . . 87 Lokale Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Globale Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Anweisungen in Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Funktionsargumente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Parameter sind lokale Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Rückgabewerte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Standardparameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Funktionen überladen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Inline-Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Fragen und Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 8 Inhaltsverzeichnis Teil II Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Stunde 6 Basisklassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Neue Typen erzeugen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Klassen und Elemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Auf Klassenelemente zugreifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Private und Public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Klassenmethoden implementieren . . . . . . . . . . . . . . . . . . . . . . . . . 119 Konstruktoren und Destruktoren . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Fragen und Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Stunde 7 Mehr über Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Konstante Elementfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Schnittstelle und Implementierung . . . . . . . . . . . . . . . . . . . . . . . . 131 Warum mit dem Compiler Fehler abfangen? . . . . . . . . . . . . . . . . . 131 Klassendeklarationen und Methodendefinitionen plazieren . . . 132 Inline-Implementierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Klassen als Datenelemente einer Klasse . . . . . . . . . . . . . . . . . . . . 136 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Fragen und Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Stunde 8 Programmsteuerung – weiterführende Themen . . . . . . . . . . . . 143 Schleifenkonstruktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 while-Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 do...while-Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 for-Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 switch-Anweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Fragen und Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Teil III Speicherverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Stunde 9 Zeiger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Was ist ein Zeiger? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Stack und Heap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 9 Jetzt lerne ich C++ Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 Fragen und Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Stunde 10 Zeiger – weiterführende Themen . . . . . . . . . . . . . . . . . . . . . . . . 187 Objekte auf dem Heap erzeugen . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Objekte löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Auf Datenelemente zugreifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 Datenelemente auf dem Heap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 Der Zeiger this . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Zweck des Zeigers this . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Wilde Zeiger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Konstante Zeiger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Fragen und Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Stunde 11 Referenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 Was ist eine Referenz? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 Referenzen erzeugen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 Der Adreßoperator bei Referenzen . . . . . . . . . . . . . . . . . . . . . . . . 203 Was kann man referenzieren? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Null-Zeiger und Null-Referenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Funktionsargumente als Referenz übergeben . . . . . . . . . . . . . . . . 208 Header und Prototypen von Funktionen . . . . . . . . . . . . . . . . . . . . 212 Mehrere Werte zurückgeben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 Fragen und Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Stunde 12 Referenzen und Zeiger – weiterführende Themen . . . . . . . . . 219 Übergabe als Referenz der Effizienz wegen . . . . . . . . . . . . . . . . . . 220 Referenzen als Alternative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 Wann verwendet man Referenzen und wann Zeiger? . . . . . . . . . . 228 Referenzen auf nicht mehr vorhandene Objekte . . . . . . . . . . . . . 228 Referenzen auf Objekte im Heap zurückgeben . . . . . . . . . . . . . . . 230 Wem gehört der Zeiger? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Fragen und Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 10

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.