|
C++ IT-Tutorial
IT-Tutorial
C++ didaktisch und praxisgerecht lernen
Objektorientierte Programmierung mit C++
Vererbung, das I/O-System und Ausnahmen
Herbert Schildt
mitp-Verlag
EAN: 9783826609800 (ISBN: 3-8266-0980-8)
633 Seiten, paperback, 18 x 23cm, 2003
EUR 27,00 alle Angaben ohne Gewähr
|
|
Umschlagtext
Mit diesem Tutorial erhalten Sie eine systematische und praxisnahe Einführung in C++. Herbert Schildt führt Sie Schritt für Schritt anhand zahlreicher Beispielt, Selbsttests und Projekte in die objektorientierte Programmierung mit C++ ein. In den ersten Kapiteln lernen Sie zunächst die grundlegende Elemente von C++ kennen wie z.B. die Verwendung von Schlüsselwörtern, In den folgenden Kapiteln werden diese Themenbereiche vertieft und weitere Kernbereiche von C++ detailliert behandelt: Arrays, Strings, Zeiger, Klassen und Objekte. Daraufhin können Sie sich nach und nach anspruchsvollere Themen wie die Vererbung, das I/O-System und die Ausnahmebehandlung aneignen. Wenn Sie dieses Buch durchgearbeitet haben, verfügen Sie über solide Grundkenntnisse und sind in der Lage, die Kerntechnicken von C++ einzusetzen, die bei der täglichen Programmierarbeiten verwendet werden. Mit diesem Wissen können sie beginnen, praktisch einsetzbare Programme in professioneller Qualität zu schreiben.
Verlagsinfo
Herbert Schildt erläutert systematisch anhand praxisnaher Beispiele die objektorientierte Programmierung in C++ . Im ersten Teil erlernen Sie zunächst die Grundlagen von C++, wie z.B. die Verwendung von Datentypen, Operatoren und Funktionen. In den folgenden Kapiteln werden diese Themen vertieft und weitere Kernbereiche von C++ behandelt: Arrays, Strings, Pointer, Programm Control Statements, Klassen und Objekte. Schrittweise können Sie sich in anspruchsvollere Themen wie die Vererbung, das C++ Ein/ Ausgabe-System und Ausnahmen einarbeiten. Im Anhang finden Sie Erläuterungen zum Präprozessor
Inhaltsverzeichnis
Vorwort 15
1 C++-Grundlagen 19
Eine kurze Geschichte von C++ 20
C: Der Beginn der modernen Programmierung 20
Warum wurde C++ nötig? 21
C++ wird geboren 22
Die Entwicklung von C++ 23
Wie C++ mit Java und C# zusammenhängt 24
Objektorientierte Programmierung 26
Einkapselung 27
Polymorphe 28
Vererbung 29
Ein erstes einfaches Programm 30
Das Programm eingeben 31
Das Programm kompilieren 31
Das Programm ausführen 32
Eine zeilenweise Analyse des ersten Beispielprogramms 33
Syntaxfehler bearbeiten 36
Ein zweites einfaches Programm 37
Einen Operator benutzen 39
Eingaben von der Tastatur lesen 41
Einige Output-Optionen 42
Ein weiterer Datentyp 44
Projekt 1-1: Fuß in Meter umwandeln 46
ZWei Steueranweisungen 48
Die if-Anweisung 48
Die for-Schleife 50
Mit Codeblöcken arbeiten 51
Semikolons und Platzierung 53
Code einrücken 54
Projekt 1-2: Eine Tabelle mit Fuß-in-Meter-Umwandlungen erstellen 55
Eine Einführung in Funktionen 57
Die C++-Bibliotheken 59
Die C++-Schlüsselwörter 60
Bezeichner 61
Übungsaufgaben 62
2 Einführung in Datentypen und Operatoren 65
Warum Datentypen wichtig sind 66
Die C++-Datentypen kennen lernen 66
Ganzzahlen 69
Zeichen 71
Fließkommatypen 73
Der bool-Typ 74
void 75
Projekt 2-1:Mit dem Mars reden 76
Literale 78
Hexadezimale und oktale literale 79
String-Literale 80
Escape-Sequenzen für Zeichen 81
Ein näherer Blick auf Variablen 82
Eine Variable initialisieren 83
Dynamische Initialisierung 83
Operatoren 84
Arithmische Operatoren 84
Inkrement und Dekrement 85
Relationale und logische Operatoren 88
Projekt 2-2: Eine logische XOR-operation konstruieren 90
Der Zuweisungsoperator 93
Zusammengesetzte Zuweisungen 94
Typumwandlung in Zuweisungen 95
Ausdrücke 95
Typumwandlung in Ausdrücken 96
In boolesche und aus booleschen Werten umwandeln 96
Casts 96
Abstände und Klammern 98
Projekt 2-3: Die Tilgungsrate eines Kredits berechnen. 98
Übungsaufgaben 101
3 Programmsteueranweisungen 103
Die if-Anweisung 104
Der Bedingungsausdruck 106
Verschachtelte if-Anweisungen 107
Die if-else-if-Leiter 108
Die switch Anweisung 110
Verschachtelte switch-Anweisungen 114
Projekt 3-1: Mit dem Aufbau eines C++ Hilfesystems beginnen 115
Die for-Schleife 117
Einige Varianten der for-Schleife 120
Fehlende Komponenten 121
Die for-Endlosschleife 122
Schleifen ohne Körper 122
Schleifensteuervariablen innerhalb der for-Schleife deklarieren 123
Die while-Schleife 125
Die do-while-Schleife 127
Projekt 3-2: Das C++ Hilfesystem verbessern 129
Eine Schleife mit break verlassen 133
Eine Schleife mit countine fortsetzen 135
Projekt 3-3: Das C++ Hilfesystem fertig stellen 136
Verschachtelte Schleifen 140
Mit der goto-Anweisung arbeiten 141
Übungsaufgaben 142
4 Arreys, Strings und Zeiger 145
Eindimensionale Arrays 146
Keine Prüfung der Grenzen 149
Zweidimensionale Arrays 151
Mehrdimensionale Arrays 152
Projekt 4-1:Ein Array sortieren 153
Strings 156
String-Grundlagen 156
Einen String über die Tastatur einlesen 157
Einige String-Bibliotheksfunktionen 159
strcpy 159
strcat 160
strcmp 160
strlen 160
Ein Beispiel für Stringfunktionen 160
Mit dem Nullterminator arbeiten 161
Arrays initialisieren 163
Arrays unbestimmter Größe initialisieren 166
String-Arrays 168
Zeiger 170
Was sind Zeiger? 170
Die Zeiger-Operatoren 171
Der Basistyp eines Zeigers ist wichtig 173
Wert mit Hilfe eines Zeigers zuweisen 175
Zeiger-Ausdrücke 176
Mit Zeigern rechnen 176
Zeiger vergleichen 178
Zeiger und Arrays 178
Einen Zeiger indizieren 181
Stringkonstanten 183
Projekt 4-2: Einen Sting vor Ort umkehren 184
Arrays von Zeigerna 187
Die Null-Zeiger-Konvention 189
Mehrfach Indirektion 189
Übungsaufgaben 192
5 Eine Einführung in Funktionen 193
Grundsätzliches über Funktionen 194
Die allgemeine Form einer Funktion 194
Eine Funktion erstellen 195
Argumente verwenden 196
Die return-Anweisung 198
Werte zurückgeben 201
Funktionen in Ausdrücken verwenden 203
Regeln für den Gültigkeitsbereich 205
Lokaler Gültigkeitsbereich 205
Globaler Gültigkeitsbereich 211
Zeiger und Arrays an Funktione übergeben 214
Einen Zeiger übergeben 214
Ein Array übergeben 216
Strings übergeben 219
Zeiger zurückgeben 220
Die Funktion main() 221
argc und argv: Argumente von main() 222
Numerische Befehlszeilenargumente übergeben 224
Funktionsprototypen 226
Header enthalten Prototypen 228
Rekursion 229
Projekt 5-1: Der Quicksort 232
Übungsaufgaben 237
6 Ein näherer Blick auf Funktionen 239
Zwei Methoden zur Übergabe von Arumenten 240
Wie C++ Argumente übergibt 240
Mit einem Zeiger ein Argument als Referenz übergeben 241
Referenzparameter 244
Referenten zurückgeben 248
Unabhängige Referenzen 251
Einige Einschränkungen für das Arbeiten mit Referenzen 252
Funktionen überladen 253
Automatische Typumwandlungen und das Überladen 258
Projekt 6-1: Überladene Ausgabefunktionen erstelle 260
Standardargumente von Funktionen 265
Standardargumente im Vergleich zum Überladen von Funktionen 268
Standardargumente korrekt verwenden 269
Funktionen überladen und Mehrdeutigkeit 270
Übungsaufgaben 274
7 Weitere Datentypen und Operatoren 277
Die Modifizierer const und volatile 278
cost 278
volatile 281
Modifizierer für Speicherklassen 281
auto 282
eytern 282
Statische Variablen 284
Registervariablen 288
Aufzählungen 291
typedef 294
Bitweise Operatoren 295
AND, OR, XOR und NOT 296
Die Shift-Operatoren 302
Projektt 7-1: Bitweise Rotationsfunktionen erstellen 304
Der ?-Operator 309
Der Komma-Operator 310
Mehrfachzuweisungen 312
Die zusammengesetzte Zuweisung 312
Mit sizeof arbeiten 313
Zusammenfassung der Rangfolge 315
Übungsaufgaben 315
8 Klassen und Objekte 317
Die Grundlagen von Klassen 318
Die allgemeine Form einer Klasse 318
Eine Klasse definieren 319
Funktionen zu einer Klasse hinzufügen 324
Projekt 8-1: Eine Help-Klasse erstellen 327
Konstruktoren und Destruktoren 333
Parametrisierte Konstruktoren 336
Einen Konstruktor zu der Vehivcle-Klasse hinzufügen 338
Eine alternative Initialisierung 339
Inline-Funktionen 341
Inline-Funktionen in einer Klasse erstellen 343
Projekt 8-2: Eine Queute-Klasse erstellen 346
Arrays von Objekte 351
Objekt-Arrays initialisieren 352
Zeiger auf Objekte 354
Objektreferenzen 356
Übungsaufgaben 356
9 Ein näherer Blick auf Klassen 359
Konstuktoren überladen 360
Objekte zuweisen 361
Objekte an Funktionen übergeben 363
Konstruktoren, Destruktoren und die Übergabe von Objekten 364
Objekte per Referenz übergeben 366
Ein potenzielles Problem bei der Übergabe von Objekten 368
Objekte zurückgeben 369
Einen Kopierkonstuktor erstellen und nutzen 371
Befreundete Funktionen 375
Strukturen und Unions 379
Strukturen 380
Unions 382
Anonyme Unions 384
Das Schlüsselwort this 386
Operatoren überladen 387
Operatoren mit Elementfunktionen überladen 388
Die Reihenfolge ist wichtig 392
Unäre Operatoren mit Elementfunktionen überladen 392
Nicht-Element-Operatorfunktionen 397
Mit einem Freund einen unären Operator überladen 402
Operatoren überladen - Tipp und Einschränkungen 404
Projekt 9-1: Eine Sef-Klasse erstellen 405
Übungsaufgaben 414
10 Vererbung, virtuelle Funktionen und Polymorphie 417
Grundlagen der Vererbung 418
Vererbung und Zugriff auf die Elemente 421
Den Zugriff auf die Basisklassen arbeiten 424
mit geschützten Elementen arbeiten 427
Konstruktoren und Vererbung 430
Konstruktoren der Basisklasse aufrufen 432
Projekt 10-1: Die Vehicle-Klassen erweitern 437
Eine mehrstufige Hierarchie erstellen 440
Mehrere Basisklassen erben 443
Wann werden Konstruktor- und Destruktor-Funktionen aufgeführt? 444
Zeiger auf abgeleitete Typen 446
Referenzen auf abgeleitete Typen 447
virtuelle Funktionen und Polymorphie 447
Die Grundlagen der virtullen Funktion 448
Virtuelle Funktionen werden vererbt 450
Warum virtuelle Funktionen? 452
Virtuelle Funktionen anwenden 453
Rein virtuelle Funktionen und abstrakte Klassen 457
Übungsaufgaben 462
11 Das I/O-System von C++ 463
Die alte und neue I/O von C++ im Vergleich 464
C++-Streams 465
Die vordefinierten Streams von C++ 466
Die Stream Klassen von C++ 466
Die I/O-Operatoren überladen 468
Inserter erstellen 468
Inserter mit befreundeten Funktionen überladern 470
Extraktoren überladen 472
Formatierte I/O 474
Mit ios-Elementfunktionen formatieren 474
Mit I/O-Manipulatoren arbeiten 480
Eigene Manipulatoren arbeiten 483
Datei-I/O 485
Eine Datei öffnen und schließen 485
Textdateien lesen und schreiben 488
Unformatierte und binäre I/O 490
Datenblöcke lesen und schreiben 493
Weitere I/O-Funktionen 494
Andere Versionen von get() 494
getline() 496
Das Dateiende (EOF) erkennen 496
peek() und putback() 497
flush 497
Projekt 11-1: Ein Utility zum Vergleichen von Dateien 497
Wahlfreier Zugriff 501
Den I/O-Status prüfen 504
Übungsaufgaben 505
12 Ausnahmen, Templates und andere fortgeschrittene Themen 507
Ausnahmebehandlung 508
Grundlagen der Ausnahmebehandlung 508
Mit mehreren catch-Anweisungen arbeiten 514
Alle Ausnahmen abfangen 516
Ausnahmen angeben,die von einer Funktion ausgelöst werden 517
Eine Ausnahme erneut auslösen 519
Templates 521
Generische Funktionen 522
Eine Funktion mit zwei generische Typen 524
Eine generische Funktion explizit überladen 525
Generische Klassen 527
Klassen explizit spezialisieren 530
Projekt 12-1: Eine generische Queue-Klassen erstellen 532
Dynamische Allozierung 535
Allozierten Speicher initialisieren 538
Arrays allozieren 539
Objekte Allozieren 539
Namensräume 544
Grundlagenwissen über Namensräume 545
using 548
Anonyme Namensräume 550
Der Namespace std 551
Statische Klassenelemente 552
Statische Elementvariablen 552
Statische Elementfunktionen 554
Runtime Type Identification (RTTI) 556
Die Typumwandlungsoperatoren 560
dynamic_cast 560
const_cast 562
static_cast 562
reinterpret_cast 562
Wie geht es weiter? 563
Übungsaufgaben 563
A Antworten auf die Übungaufgaben 565
Kapitel 1: C++-Grundlagen 566
Kapitel 2: Einführung in Datentypen und Operatoren 568
Kapitel 3: Programmsteuerungsanweisungen 570
Kapitel 4: Arrays, Strings und Zeiger 572
Kapitel 5: Eine Einführung in Funktionen 575
Kapitel 6: Ein näherer Blickauf Funktionen 578
Kapitel 7: Weitere Datentypen und Operatoren 583
Kapitel 8: Klassen und Objekte 586
Kapitel 9: Klassen genauer betrachtet 589
Kapitel 10: Vererbung, virtuelle Funktionen und Polsmorphie 591
Kapitel 11: Das I/O-System von C++ 592
Kapitel 12: Ausnahmen, Templates und andere fortgeschrittene Themen 595
B Der Präprozessor 603
#define 604
Funktionsmakros 606
#error 608
#include 608
Direktiven für die bedingte Kompilierung 609
#if, #else, #elif und #endif 609
#ifdef und #ifndef 612
#undef 613
Mit defined arbeiten 613
#line 614
#pragma 614
Die Präprozessor-Operatoren # und ## 614
Vordefinierte Makronamen 616
C Mit einem älteren C++-Compiler arbeiten 617
Zwei einfache Änderungen 619
Stichwortverzeichnis 621
Weitere Titel aus der Reihe Do IT Yourself |
|
|