C++ - Lernen und professionell anwenden
von: Ulla Kirch-Prinz, Peter Prinz
mitp-Verlag, 2005
ISBN: 9783826615344
Sprache: Deutsch
896 Seiten, Download: 5484 KB
Format: PDF, auch als Online-Lesen
Inhaltsverzeichnis | 8 | ||
Einleitung | 20 | ||
Kapitel 1 | 22 | ||
Grundlagen | 22 | ||
Entwicklung und Eigenschaften von C++ | 23 | ||
Objektorientierte Programmierung | 25 | ||
Erstellen eines C++- Programms | 27 | ||
Ein erstes C++-Programm | 29 | ||
Struktur einfacher C++-Programme | 31 | ||
Übungen | 33 | ||
Lösungen | 35 | ||
Kapitel 2 | 36 | ||
Elementare Datentypen, Konstanten und Variablen | 36 | ||
Elementare Datentypen | 37 | ||
Elementare Datentypen (Fortsetzung) | 39 | ||
Elementare Datentypen (Fortsetzung) | 41 | ||
Konstanten | 43 | ||
Konstanten (Fortsetzung) | 45 | ||
Escape- Sequenzen | 47 | ||
Namen | 49 | ||
Variablen | 51 | ||
Die Schlüsselworte const und volatile | 53 | ||
Übungen | 55 | ||
Lösungen | 57 | ||
Lösungen (Fortsetzung) | 58 | ||
Kapitel 3 | 60 | ||
Verwenden von Funktionen und Klassen | 60 | ||
Deklaration von Funktionen | 61 | ||
Aufruf von Funktionen | 63 | ||
Der Typ void für Funktionen | 65 | ||
Header-Dateien | 67 | ||
Standard-Header-Dateien | 69 | ||
Verwenden von Standardklassen | 71 | ||
Übungen | 73 | ||
Lösungen | 75 | ||
Kapitel 4 | 78 | ||
Ein- und Ausgaben mit Streams | 78 | ||
Streams | 79 | ||
Formatierung und Manipulatoren | 81 | ||
Formatierte Ausgabe von Ganzzahlen | 83 | ||
Formatierte Ausgabe von Gleitpunktzahlen | 85 | ||
Ausgabe in Felder | 87 | ||
Ausgabe von Zeichen, Strings und booleschen Werten | 89 | ||
Formatierte Eingabe | 91 | ||
Formatierte Eingabe von Zahlen | 93 | ||
Unformatierte Ein-/Ausgabe | 95 | ||
Übungen | 97 | ||
Lösungen | 99 | ||
Lösungen ( Fortsetzung) | 101 | ||
Kapitel 5 | 102 | ||
Operatoren für elementare Datentypen | 102 | ||
Binäre arithmetische Operatoren | 103 | ||
Unäre arithmetische Operatoren | 105 | ||
Zuweisungen | 107 | ||
Vergleichsoperatoren | 109 | ||
Logische Operatoren | 111 | ||
Übungen | 113 | ||
Lösungen | 115 | ||
Kapitel 6 | 116 | ||
Kontrollstrukturen | 116 | ||
Die while- Schleife | 117 | ||
Die for-Schleife | 119 | ||
Die for-Schleife (Fortsetzung) | 121 | ||
Die do-while-Schleife | 123 | ||
Verzweigungen mit if-else | 125 | ||
else-if-Ketten | 127 | ||
Bedingte Bewertung | 129 | ||
Auswahl mit switch | 131 | ||
Sprünge mit break, continue und goto | 133 | ||
Übungen | 135 | ||
Lösungen | 137 | ||
Lösungen ( Fortsetzung) | 139 | ||
Kapitel 7 | 140 | ||
Symbolische Konstanten und Makros | 140 | ||
Makros | 141 | ||
Makros mit Parametern | 143 | ||
Arbeiten mit der #define-Direktive | 145 | ||
Bedingte Kompilierung | 147 | ||
Standardmakros zur Behandlung von Zeichen | 149 | ||
Umlenken von Standardeingabe und -ausgabe | 151 | ||
Übungen | 153 | ||
Lösungen | 155 | ||
Lösungen ( Fortsetzung) | 157 | ||
Kapitel 8 | 160 | ||
Umwandlung arithmetischer Datentypen | 160 | ||
Implizite Typumwandlungen | 161 | ||
Verfahren bei arithmetischen Typumwandlungen | 163 | ||
Implizite Typumwandlungen bei Zuweisungen | 165 | ||
Weitere Typumwandlungen | 167 | ||
Übungen | 169 | ||
Lösungen | 171 | ||
Kapitel 9 | 174 | ||
Die Standardklasse string | 174 | ||
Definition und Zuweisung von Strings | 175 | ||
Verketten von Strings | 177 | ||
Strings vergleichen | 179 | ||
Einfügen und Löschen in Strings | 181 | ||
Suchen und Ersetzen in Strings | 183 | ||
Zugriff auf Zeichen in Strings | 185 | ||
Übungen | 187 | ||
Lösungen | 189 | ||
Lösungen (Fortsetzung) | 191 | ||
Kapitel 10 | 192 | ||
Funktionen | 192 | ||
Bedeutung von Funktionen in C++ | 193 | ||
Erstellen eigener Funktionen | 195 | ||
Return-Wert von Funktionen | 197 | ||
Übergabe von Argumenten | 199 | ||
inline-Funktionen | 201 | ||
Default-Argumente | 203 | ||
Überladen von Funktionen | 205 | ||
Rekursive Funktionen | 207 | ||
Übungen | 209 | ||
Lösungen | 212 | ||
Lösungen (Fortsetzung) | 213 | ||
Lösungen (Fortsetzung) | 215 | ||
Kapitel 11 | 218 | ||
Speicherklassen und Namensbereiche | 218 | ||
Speicherklasse von Objekten | 219 | ||
Der Speicherklassen-Spezifizierer extern | 221 | ||
Der Speicherklassen-Spezifizierer static | 223 | ||
Die Speicherklassen-Spezifizierer auto und register | 225 | ||
Speicherklassen-Spezifizierer von Funktionen | 227 | ||
Namensbereiche | 229 | ||
Das Schlüsselwort using | 231 | ||
Übungen | 233 | ||
Übungen (Fortsetzung) | 235 | ||
Lösungen | 237 | ||
Lösungen (Fortsetzung) | 239 | ||
Lösungen (Fortsetzung) | 241 | ||
Kapitel 12 | 242 | ||
Referenzen und Zeiger | 242 | ||
Definition von Referenzen | 243 | ||
Referenzen als Parameter | 245 | ||
Referenzen als Return-Wert | 247 | ||
Ausdrücke mit Referenztyp | 249 | ||
Definition von Zeigern | 251 | ||
Der Verweisoperator | 253 | ||
Zeiger als Parameter | 255 | ||
Übungen | 257 | ||
Lösungen | 259 | ||
Lösungen (Fortsetzung) | 261 | ||
Lösungen (Fortsetzung) | 263 | ||
Kapitel 13 | 264 | ||
Definition von Klassen | 264 | ||
Klassen-Konzept | 265 | ||
Definition von Klassen | 267 | ||
Definition von Methoden | 269 | ||
Definition von Objekten | 271 | ||
Verwendung von Objekten | 273 | ||
Zeiger auf Objekte | 275 | ||
Structs | 277 | ||
Unions | 279 | ||
Übungen | 281 | ||
Lösung | 283 | ||
Kapitel 14 | 286 | ||
Methoden | 286 | ||
Konstruktoren | 287 | ||
Aufruf von Konstruktoren | 289 | ||
Destruktoren | 291 | ||
Inline- Methoden | 293 | ||
Zugriffsmethoden | 295 | ||
const- Objekte und -Methoden | 297 | ||
Standardmethoden | 299 | ||
Der this-Zeiger | 301 | ||
Übergabe von Objekten | 303 | ||
Objekte als Return- Wert | 305 | ||
Übungen | 307 | ||
Übungen (Fortsetzung) | 309 | ||
Lösungen | 311 | ||
Lösungen (Fortsetzung) | 313 | ||
Lösungen (Fortsetzung) | 315 | ||
Lösungen (Fortsetzung) | 317 | ||
Kapitel 15 | 318 | ||
Teilobjekte und statische Elemente | 318 | ||
Klassen mit Teilobjekten | 319 | ||
Elementinitialisierer | 321 | ||
Konstante Teilobjekte | 323 | ||
Statische Datenelemente | 325 | ||
Zugriff auf statische Datenelemente | 327 | ||
Aufzählungen | 329 | ||
Übungen | 331 | ||
Übungen (Fortsetzung) | 333 | ||
Lösungen | 335 | ||
Lösungen (Fortsetzung) | 337 | ||
Lösungen (Fortsetzung) | 339 | ||
Lösungen (Fortsetzung) | 341 | ||
Kapitel 16 | 342 | ||
Vektoren | 342 | ||
Vektoren definieren | 343 | ||
Initialisierung von Vektoren | 345 | ||
C-Strings | 347 | ||
Klassen- Arrays | 349 | ||
Mehrdimensionale Vektoren | 351 | ||
Vektoren als Datenelemente | 353 | ||
Übungen | 355 | ||
Übungen (Fortsetzung) | 357 | ||
Lösungen | 359 | ||
Lösungen (Fortsetzung) | 361 | ||
Lösungen (Fortsetzung) | 363 | ||
Lösungen (Fortsetzung) | 365 | ||
Lösungen (Fortsetzung) | 367 | ||
Lösungen (Fortsetzung) | 369 | ||
Kapitel 17 | 370 | ||
Zeiger und Vektoren | 370 | ||
Vektoren und Zeiger (1) | 371 | ||
Vektoren und Zeiger (2) | 373 | ||
Zeigerarithmetik | 375 | ||
Vektoren als Argumente von Funktionen | 377 | ||
Zeigerversion von Funktionen | 379 | ||
Read- Only- Zeiger | 381 | ||
Zeiger als Return- Wert | 383 | ||
Zeigervektoren | 385 | ||
Argumente aus der Kommandozeile | 387 | ||
Übungen | 389 | ||
Übungen (Fortsetzung) | 391 | ||
Lösungen | 393 | ||
Lösungen (Fortsetzung) | 395 | ||
Lösungen (Fortsetzung) | 397 | ||
Lösungen (Fortsetzung) | 399 | ||
Kapitel 18 | 400 | ||
Grundlagen der Dateiverarbeitung | 400 | ||
Dateien | 401 | ||
File-Stream-Klassen | 403 | ||
File-Streams anlegen | 405 | ||
Eröffnungsmodus | 407 | ||
Schließen von Dateien | 409 | ||
Blockweises Schreiben und Lesen | 411 | ||
Persistenz von Objekten | 413 | ||
Übungen | 415 | ||
Übungen (Fortsetzung) | 417 | ||
Lösungen | 419 | ||
Lösungen (Fortsetzung) | 421 | ||
Lösungen (Fortsetzung) | 423 | ||
Lösungen (Fortsetzung) | 425 | ||
Lösungen (Fortsetzung) | 427 | ||
Lösungen (Fortsetzung) | 429 | ||
Lösungen (Fortsetzung) | 431 | ||
Kapitel 19 | 434 | ||
Operatoren überladen | 434 | ||
Allgemeines | 435 | ||
Operatorfunktionen (1) | 437 | ||
Operatorfunktionen (2) | 439 | ||
Überladene Operatoren verwenden | 441 | ||
Globale Operatorfunktionen | 443 | ||
friend-Funktionen | 445 | ||
friend-Klassen | 447 | ||
Index-Operator überladen | 449 | ||
Shift-Operatoren für die Ein-/Ausgabe überladen | 451 | ||
Übungen | 453 | ||
Lösungen | 455 | ||
Lösungen (Fortsetzung) | 457 | ||
Lösungen (Fortsetzung) | 459 | ||
Lösungen (Fortsetzung) | 461 | ||
Kapitel 20 | 464 | ||
Typumwandlungen für Klassen | 464 | ||
Konvertierungskonstruktoren | 465 | ||
Konvertierungsfunktionen | 467 | ||
Mehrdeutigkeit bei Typumwandlungen | 469 | ||
Übungen | 471 | ||
Lösungen | 473 | ||
Kapitel 21 | 476 | ||
Speicherreservierung zur Laufzeit | 476 | ||
Der Operator new | 477 | ||
Der Operator delete | 479 | ||
Dynamischer Speicher für Klassen | 481 | ||
Dynamischer Speicher für Vektoren | 483 | ||
Anwendung: Einfach verkettete Listen | 485 | ||
Darstellung einer einfach verketteten Liste | 487 | ||
Übungen | 489 | ||
Lösungen | 491 | ||
Lösungen (Fortsetzung) | 493 | ||
Lösungen (Fortsetzung) | 495 | ||
Lösungen (Fortsetzung) | 497 | ||
Lösungen (Fortsetzung) | 499 | ||
Kapitel 22 | 500 | ||
Dynamische Elemente | 500 | ||
Datenfelder variabler Länge | 501 | ||
Eine Klasse mit dynamischem Element | 503 | ||
Auf- und Abbau eines Objekts | 505 | ||
Die Implementierung der Methoden | 507 | ||
Kopierkonstruktor | 509 | ||
Zuweisung | 511 | ||
Übungen | 513 | ||
Lösungen | 515 | ||
Lösungen (Fortsetzung) | 517 | ||
Lösungen (Fortsetzung) | 519 | ||
Lösungen (Fortsetzung) | 521 | ||
Kapitel 23 | 524 | ||
Vererbung | 524 | ||
Konzept der Vererbung | 525 | ||
Abgeleitete Klassen | 527 | ||
Elemente abgeleiteter Klassen | 529 | ||
Elementzugriff | 531 | ||
Redefinition von Elementen | 533 | ||
Auf- und Abbau abgeleiteter Klassen | 535 | ||
Objekte abgeleiteter Klassen | 537 | ||
protected-Deklarationen | 539 | ||
Weitere Zugriffseinschränkungen | 541 | ||
Übungen | 543 | ||
Übungen (Fortsetzung) | 545 | ||
Lösungen | 547 | ||
Lösungen (Fortsetzung) | 549 | ||
Lösungen (Fortsetzung) | 551 | ||
Lösungen (Fortsetzung) | 553 | ||
Lösungen (Fortsetzung) | 555 | ||
Kapitel 24 | 556 | ||
Typumwandlung in Klassenhierarchien | 556 | ||
Konvertierung in Basisklassen | 557 | ||
Typumwandlung bei Zuweisungen | 559 | ||
Konvertierung von Referenzen und Zeigern | 561 | ||
Explizite Typumwandlungen | 563 | ||
Übungen | 565 | ||
Lösungen | 567 | ||
Kapitel 25 | 570 | ||
Polymorphe Klassen | 570 | ||
Polymorphie | 571 | ||
Virtuelle Methoden | 573 | ||
Abbau dynamischer Objekte | 575 | ||
Virtuelle Methodentabelle | 577 | ||
Dynamische Casts | 579 | ||
Übungen | 581 | ||
Übungen (Fortsetzung) | 583 | ||
Lösungen | 585 | ||
Lösungen (Fortsetzung) | 587 | ||
Lösungen (Fortsetzung) | 589 | ||
Lösungen (Fortsetzung) | 591 | ||
Kapitel 26 | 592 | ||
Abstrakte Klassen | 592 | ||
Rein virtuelle Methoden | 593 | ||
Abstrakte und konkrete Klassen | 595 | ||
Zeiger und Referenzen auf abstrakte Klassen | 597 | ||
Virtuelle Zuweisungen | 599 | ||
Anwendung: Inhomogene Listen | 601 | ||
Implementierung einer inhomogenen Liste | 603 | ||
Übungen | 605 | ||
Lösungen | 607 | ||
Lösungen (Fortsetzung) | 609 | ||
Lösungen (Fortsetzung) | 611 | ||
Kapitel 27 | 614 | ||
Mehrfachvererbung | 614 | ||
Mehrfach abgeleitete Klassen | 615 | ||
Mehrfache indirekte Basisklassen | 617 | ||
Virtuelle Basisklassen | 619 | ||
Aufrufe von Konstruktoren | 621 | ||
Initialisierung virtueller Basisklassen | 623 | ||
Übungen | 625 | ||
Übungen (Fortsetzung) | 627 | ||
Lösungen | 629 | ||
Lösungen (Fortsetzung) | 631 | ||
Lösungen (Fortsetzung) | 633 | ||
Kapitel 28 | 634 | ||
Ausnahmebehandlung | 634 | ||
Traditionelle Fehlerbehandlung | 635 | ||
Exception-Handling | 637 | ||
Exception-Handler | 639 | ||
Auslösen und Auffangen von Exceptions | 641 | ||
Schachteln von Ausnahmebehandlungen | 643 | ||
Definition eigener Fehlerklassen | 645 | ||
Standardfehlerklassen | 647 | ||
Übungen | 649 | ||
Übungen (Fortsetzung) | 651 | ||
Lösungen | 653 | ||
Lösungen (Fortsetzung) | 655 | ||
Lösungen (Fortsetzung) | 657 | ||
Lösungen (Fortsetzung) | 659 | ||
Lösungen (Fortsetzung) | 661 | ||
Lösungen (Fortsetzung) | 663 | ||
Kapitel 29 | 664 | ||
Mehr über Dateien | 664 | ||
Dateien für wahlfreien Zugriff öffnen | 665 | ||
Wahlfreies Positionieren | 667 | ||
Dateistatus | 671 | ||
Exception Handling für Dateien | 673 | ||
Persistenz von polymorphen Objekten | 675 | ||
Persistenz von Objekten (Fortsetzung) | 677 | ||
Anwendung: Indexdateien | 679 | ||
Implementierung eines Index-Dateisystems | 681 | ||
Übungen | 683 | ||
Übungen (Fortsetzung) | 685 | ||
Lösungen | 687 | ||
Lösungen | 689 | ||
Lösungen | 691 | ||
Lösungen | 693 | ||
Lösungen | 695 | ||
Lösungen | 697 | ||
Lösungen | 699 | ||
Lösungen | 701 | ||
Lösungen | 703 | ||
Lösungen | 705 | ||
Lösungen | 707 | ||
Kapitel 30 | 708 | ||
Mehr über Zeiger | 708 | ||
Zeiger auf Zeiger | 709 | ||
Variable Anzahl von Argumenten | 711 | ||
Variable Anzahl von Argumenten (Fortsetzung) | 713 | ||
Zeiger auf Funktionen | 715 | ||
Komplexe Deklarationen | 717 | ||
Definition von Typnamen | 719 | ||
Matrizen als Argumente von Funktionen | 721 | ||
Anwendung: Dynamische Matrizen | 723 | ||
Übungen | 725 | ||
Lösungen | 727 | ||
Lösungen (Fortsetzung) | 729 | ||
Lösungen (Fortsetzung) | 731 | ||
Lösungen (Fortsetzung) | 733 | ||
Kapitel 31 | 736 | ||
Bitmanipulationen | 736 | ||
Logische Bitoperatoren | 737 | ||
Shift- Operatoren | 739 | ||
Bitmasken | 741 | ||
Verwenden von Bitmasken | 743 | ||
Bitfelder | 745 | ||
Übungen | 747 | ||
Lösungen | 749 | ||
Lösungen (Fortsetzung) | 751 | ||
Kapitel 32 | 754 | ||
Templates | 754 | ||
Funktions- und Klassen-Templates | 755 | ||
Definition von Templates | 757 | ||
Instantiierung von Templates | 759 | ||
Template-Parameter | 761 | ||
Template-Argumente | 763 | ||
Spezialisierungen | 765 | ||
Default-Argumente von Templates | 767 | ||
Explizite Instantiierung | 769 | ||
Übungen | 771 | ||
Übungen (Fortsetzung) | 773 | ||
Übungen (Fortsetzung) | 774 | ||
Lösungen | 775 | ||
Lösungen (Fortsetzung) | 777 | ||
Lösungen (Fortsetzung) | 779 | ||
Lösungen (Fortsetzung) | 781 | ||
Kapitel 33 | 782 | ||
Container | 782 | ||
Arten von Containern | 783 | ||
Sequentielle Container-Klassen | 785 | ||
Iteratoren | 787 | ||
Vereinbarung sequentieller Container | 789 | ||
Einfügen in sequentiellen Containern | 791 | ||
Elementzugriff | 793 | ||
Länge und Kapazität | 795 | ||
Löschen in sequentiellen Containern | 797 | ||
Listenoperationen | 799 | ||
Assoziative Container | 801 | ||
Sets und Multisets | 803 | ||
Maps und Multimaps | 805 | ||
Bitsets | 807 | ||
Bitsets (Fortsetzung) | 809 | ||
Übungen | 811 | ||
Lösungen | 813 | ||
Lösungen | 815 | ||
Kapitel 34 | 816 | ||
Algorithmen der Standardbibliothek | 816 | ||
Algorithmen: Grundlagen | 817 | ||
Funktionsobjekte | 819 | ||
Funktionsobjekte (Fortsetzung) | 821 | ||
Algorithmen und Iteratoren | 823 | ||
Vordefinierte Iteratoren | 825 | ||
Nicht-modifizierende Algorithmen | 827 | ||
Modifizierende Algorithmen | 831 | ||
Modifizierende Algorithmen (Fortsetzung) | 833 | ||
Mutierende Algorithmen | 835 | ||
Sortieren und verwandte Operationen | 837 | ||
Sortieren und verwandte Operationen (Forts.) | 839 | ||
Anhang A | 842 | ||
Binäre Zahlendarstellung | 843 | ||
Binäre Zahlendarstellung (Fortsetzung) | 845 | ||
Präprozessor-Direktiven | 846 | ||
Präprozessor-Direktiven (Fortsetzung) | 847 | ||
Präprozessor-Direktiven (Fortsetzung) | 849 | ||
Präprozessor-Direktiven (Fortsetzung) | 851 | ||
Vordefinierte Standardmakros | 852 | ||
Einbinden von C-Funktionen | 853 | ||
Operatorenübersicht | 855 | ||
Vorrangtabelle für Operatoren | 857 | ||
ASCII-Code-Tabelle | 858 | ||
ASCII-Code-Tabelle (Fortsetzung) | 859 | ||
Bildschirmsteuerzeichen | 860 | ||
Die CD-ROM zum Buch (Auf Anfrage erhältlich) | 861 | ||
Anhang B | 864 | ||
Glossar | 864 | ||
Stichwortverzeichnis | 882 | ||
Mehr eBooks bei www.ciando.com | 0 |