lehrerbibliothek.deDatenschutzerklärung
C++ lernen und professionell anwenden
C++ lernen und professionell anwenden




Peter Prinz, Ulla Kirch-Prinz

mitp-Verlag
EAN: 9783826608247 (ISBN: 3-8266-0824-0)
850 Seiten, hardcover, 17 x 24cm, 2002, CD

EUR 44,95
alle Angaben ohne Gewähr

Umschlagtext
Sie möchten die Programmiersprache C++ neu lernen oder vertiefen - und sind Anfänger oder fortgeschrittener Programmierer? Dann ist dieses Buch richtig für Sie!



Sie lernen die elementaren Sprachkonzepte von C++ und werden schrittweise bis zur Entwicklung professioneler C++-Programme geführt. In den Beispielen zeigen die Autoren die ganze Breite des Anwendungsspektrums auf. Dabei basiert die gesamte Sprachbeschreibung auf dem ANSI-Standard, der von allen gängigen Compilern unterstützt wird (Visual C++, C++ Builder, gcc etc.).



Jedes Kapitel bietet Ihnen gelegenheit, direkt mit Übungen und Musterlösung Ihre Kenntnisse zu überprüfen und zu vertiefen. Und damit Sie Ihr Programm unmittelbar testen können, ist auf der beiliegenden CD die Microsoft Visual C++ Book Edition beigefügt, die nahezu identisch mit der Vollversion ist (Weitergabe damit erstellter Programme nicht zulässig).



Aus dem Inhalt

Grundlagen: Datentypen, Kontrollstrukturen, Operatoren, Funktionen, Makros

Vektoren, Strings, Zeiger und Referenzen

Speicherreservierunge zur Laufzeit, dynamisceh Arrays und Matrizen

Klassen, Überladung von Operatoren und Funktionen

Vererbung und Polymorphie

Sequentielle und wahlfreie Dateiverarbeitung mit Streams

Ausnahmebehandlung, Templates



Sequentielle und assoziative Container, Bitsets
Verlagsinfo
Das grundlegendes Lehrbuch zu C++, das mit seinem perfekt durchdachten Aufbau besticht. C++ wird nicht als Erweiterung von C, sondern als eigenständige Programmier-sprache behandelt. Das Buch, das keine C- oder C++-Kenntnisse voraussetzt, bietet dem Leser eine fundierte Einführung in C++ und macht ihn mit einem breiten Anwendungsspektrum vertraut. Die Sprachbeschreibung basiert auf dem aktuell verabschiedeten ANSI-Standard, der von allen gängigen Compilern (Borland, Microsoft, GNU) unterstützt wird. Jedes Kapitel bietet dem Programmierer Gelegenheit, anhand von Übungen mit Muster-lösungen seine Kenntnisse zu überprüfen und zu vertiefen. Zahlreiche Tabellen und Übersichten machen das Buch zu einem praktischen Nachschlagewerk. Konsequent verfolgen die Autoren das Konzept, im Buch auf der linken Buchseite Übungen, Definitionen und Beispiele aufzuführen, die auf der rechten Buchseite lehrbuchartig erläutert werden. Damit hat sich das Buch zum begehrten Lehrbuch im akademischen Bereich etabliert.
Inhaltsverzeichnis
Einleitung 19

Grundlagen 21
Entwicklung und Eigenschaften von C++ 22
Objektorientierte Programmierung 24
Erstellen eines C++-Programms 26
Ein erstes C++ Programm 28
Struktur einfacher C++-Programme 30
Übungen 32
Lösungen 34

Elementare Datentypen, Konstaten und Variablen 35
Elementare Datentypen 36
Konstanten 42
Escape-Sequenzen 46
Namen 48
Variablen 50
Die Schlüsselworte const und volatile 52
Übungen 54
Lösungen 56

Verwenden von Funktionen und Klassen 59
Deklaration von Funktionen 60
Aufrufen von Funktionen 62
Der Typ void für Funktionen 64
Header-Dateien 66
Standard-Haeder-Dateien 68
Verwenden von Standardklassen 70
Übungen 72
Lösungen 74

Ein- und Ausgaben mit Streams 77
Streams 78
Formatierung und Manipulatoren 80
Formatierte Ausgabe von Ganzzahlen 82
Formatierte Ausgabe von Gleitpunktzahlen 84
Ausgabe in Felder 86
Ausgabe von Zeichen, Strings und booleschen Werten 88
Formatierte Eingabe 90
Foramtierte Einfage von Zahlen 92
Formatierte Ein-/Ausgabe 94
Übungen 96
Lösungen 98

Operatoren für elementare Datentypen 101
Binäre arithmetische Orperatoren 102
Unäre arithmetische Operatoren 104
Zuweisungen 106
Vrgleichsoperatoren 108
Logische Operatoren 110
Übungen 112
Lösungen 114

Kontrollstrukturen 115
Die while-Schleife 116
Die for-Schleife 118
Die do-while-Schleife 122
Verzweigungen mit if-else 124
else-if-Ketten 126
Bedingte Bewertung 128
Auswahl mit switch 130
Sprünge mit break, continue und goto 132
Übungen 134
Lösungen 136

Symbolische Konstanten und Makros 139
Makros 140
Makros mit Parametern 142
Arbeit mit der #define-Direktive 144
Bedingte Kompilierung 146
Standardmakros zur Behandlung von Zeichen 148
Umlenken von Standardeingabe und -ausgabe 150
Übungen 152
Lösungen 154

Umwandlung arithmetischer Datentypen 159
Implizite Typumwandlungen 160
Verfahren bei arithmetischen Typumwandlungen 162
Implizite Typumwandlungen bei Zuweisungen 164
Weitere Typumwandlungen 166
Übungen 168
Lösungen 170

Die Standardklasse string 173
Definition und Zuweisung von Strings 174
Verketten von Strings 176
Strings vergleichen 178
Einfügen und Löschen in Strings 180
Suchen und Erstzen in Strings 182
Zugriff auf Zeichen in Strings 184
Übungen 186
Lösungen 188

Funktionen 191
Bedeutung von Funktionen in C++ 192
Erstellen eigener Funktionen 194
Return-Wert von Funktionen 196
Übergabe von Argumenten 198
inline-Funktionen 200
Default-Argumente 202
Überladen von Funktionen 204
Rekursive Funktionen 206
Übungen 208
Lösungen 211

Speicherklassen und Namensbereiche 217
Speicherklasse von Objekten 218
Die Speicherklasse extern 220
Die Speicherklasse static 222
Die Speicherklassen auto und register 224
Speicherklassen von Funktionen 226
Namensbereiche 228
Das Schlüsselwort using 230
Übungen 232
Lösungen 236

Referenzen und Zeiger 241
Definition von Referenzen 242
Referenzen als Parameter 244
Referenzen als Return-Wert 246
Ausdrücke mit Referenztyp 248
Definition von Zeigern 250
Der Verweisoperator 252
Zeiger als Parameter 254
Übungen 256
Lösungen 258

Definition von Klassen 263
Klassen-Konzept 264
Definition von Klassen 266
Definition von Methoden 268
Definition von Objekten 270
Verwendung von Objekten 272
Zeiger auf Objekte 274
Structs 276
Unions 278
Übungen 280
Lösungen 282

Methoden 285
Konstruktoren 286
Aufruf von Konstuktoren 288
Destruktoren 290
Inline-Methoden 292
Zugriffsmethoden 294
cons-Objekte und -Methoden 296
Standardmethoden 298
Der this-Zeiger 300
Übergabe von Objekten 302
Objekte als Return-Wert 304
Übungen 306
Lösungen 310

Teilobjekte und statische Elemente 317
Klassen mit Teilobjekten 318
Elementinitialisierer 320
Konstante Teilobjekte 322
Statische Datenelemente 324
Zugriff auf statische Datenelemente 326
Aufzählungen 328
Übungen 330
Lösungen 334

Vektoren 341
Vektoren definieren 342
Initialisierung von Vektoren 344
C-Stings 346
Klassen-Arrays 348
Mehrdimensionale Vektoren 350
Vektoren als Datenelemente 352
Übungen 354
Lösungen 358

Zeiger und Vektoren 369
Vektoren und Zeiger (1) 370
Vektoren und Zeiger (2) 372
Zeigerarithmetik 374
Vektoren als Argumente von Funktionen 376
Zeigerversion von Funktionen 378
Read-Only-Zeiger 380
Zeiger als Return-Wert 382
Zeigervektoren 384
Argumente aus der Kommandozeile 386
Übungen 388
Lösungen 392

Grundlagen der Dateiverabrbeitung 399
Dateien 400
File-Stream-Klassen 402
File-Streams anlegen 404
Eröffnungsmodus 406
Schließen von Dateien 408
Blockweises Schreiben und Lesen 410
Persistenz von Objekten 412
Übungen 414
Lösungen 418

Operatoren überladen 433
Allgemeines 434
Operatorfunktionen (1) 436
Operatorfunktionen (2) 438
Überladene Opeatoren verwenden 440
Globale Operatorfunktionen 442
friend-Funktionen 444
friend-Klassen 446
Index-Operator überladen 448
Shift-Operatoren für die Ein-/Ausgabe überladen 450
Übungen 452
Lösungen 454

Typumwandlungen für Klassen 463
Konvertireungskonstrukoren 464
Konvertierungsfunktionen 466
Mehrdeutigkeit bei Typumwandlungen 468
Übungen 470
Lösungen 472

Speicherreservierung zur Laufzeit 475
Der Operator new 476
Der Operator delete 478
Dynamischer Speicher für Klassen 480
Dynamischer Speicher für Vektoren 482
Anwendung: Einfach verkettete Listen 484
Darstellung einer einfach verketteten Liste 486
Übungen 488
Lösungen 490

Dynamische Elemente 499
Datenfelder variabler Länge 500
Eine Klasse mit dynamischem Element 502
Auf- und Abbau eines Objekts 504
Die Implementierung der Methoden 506
Kopierkonstrukor 508
Zuweisung 510
Übungen 512
Lösungen 514

Verebung 523
Konzept der Vererbung 524
Abgeleitete Klassen 526
Elemente abgeleiteter Klassen 528
Elementzugriff 530
Redefinition von Elementen 532
Auf- und Abbau abgeleiteter Klassen 534
Objekte abgeleiteter Klassen 536
protected-Deklarationen 538
Übungen 540
Lösungen 544

Typumwandlung in Klassenhierarchien 553
Konvertierung in Basisklassen 554
Typumwandlung bei Zuweisungen 556
Konvertierung von Referenzen und Zeigern 558
Explizite Typumwandlungen 560
Übungen 562
Lösungen 564

Polymorphe Klassen 567
Polymorphie 568
Virtuelle Methoden 570
Abbau dynamischer Objekte 572
Virtuelle Methodentabelle 574
Dynamische Casts 576
Übungen 578
Lösungen 582

Abstrakte Klasse 589
Rein virtuelle Methoden 590
Abstrakte und konkrete Klassen 592
Zeiger und Referenzen auf abstrakte Klassen 594
Virtuelle Zuweisungen 596
Anwendung: Inhomogene Listen 598
Implementierung einer inhomogenen Liste 600
Übungen 602
Lösungen 604

Mehrfachvererbung 611
Mehrfach abgeleitete Klassen 612
Mehrfache indirekte Basisklassen 614
Viruelle Basisklassen 616
Aufrufe von Konstuktoren 618
Initalisierung virtueller Basisklassen 620
Übungen 622
Lösungen 626

Ausnahmebehandlung 631
Traditionelle Fehlerbehandlung 632
Exception-Handling 634
Exception-Handler 636
Auslösen und Auffangen von Exceptions 638
Schateln von Ausnahmebehandlungen 640
Definition eigener Fehlerklassen 642
Standardfehlerklassen 644
Übungen 646
Lösungen 650

Mehr über Dateien 661
Dateien für wahlfreien Zugriff öffnen 662
Wahlfreies Positionieren 664
Wahlfreies Positionieren (Fortsetzung) 666
Dateistatus 668
Exception-Handling für Dateien 670
Persistenz von polymorphen Objekten 672
Persistenz von Objekten (Fortsetzung) 674
Anwendung: Indexdateien 676
Implementierung einer Indexdatei 678
Übungen 680
Lösungen 684


Mehr über Zeiger 705
Zeiger auf Zeiger 706
Variable Anzahl von Argumenten 708
Zeiger auf Funktionen 712
Komplexe Deklarationen 714
Definition von Typnamen 716
Anwendung: Dynamische Matrizen 718
Übungen 720
Lösungen 722

Bitmanipulationen 731
Logische Bitoperationen 732
Shift-Operationen 734
Bitmasken 736
Verwenden von Bitmasken 738
Bitfelder 740
Übungen 742
Lösungen 744

Templates 749
Funktions- und Klassen-Templates 750
Definition von Templates 752
Instantiierung von Templates 754
Template-Parameter 756
Template-Argumente 758
Spezialisierungen 760
Default-Argumente von Templates 762
Explizite Instantiierung 764
Übungen 766
Lösungen 770

Container 777
Arten von Containern 778
Sequentielle Container-Klassen 780
Iteratoren 782
Vereinbarung sequentieller Container 784
Einfügen in sequentiellen Containern 786
Elementzugriff 788
Länge und Kapazität 790
Löschen in sequentiellen Containern 792
Listenoperationen 794
Assoziative Container 796
Sets und Multisets 798
Maps und Multimaps 800
Bitsets 802
Übungen 806
Lösungen 808

Anhang
Binäre Zahlendarstellung 812
Präprozessor-Direktiven 815
Vordefinierte Standardmakros 821
Einbinden von C-Funktionen 822
Operatorenübersicht 824
Vorrangtabelle für Operatoren 826
ASCII-Code-Tabelle 827
Bildschirmsteuerzeichen 829
Die CD-ROM zum Buch 831

Stichwortverzeichnis 833